2012-08-06 363 views
3

我有小代码,我必须添加条件才能获得正确的输出。在Java的ArrayList中获取第一个和最后一个元素

如果mimeList中的元素是Last,那么转到否则部分。 或如果

此ArrayList中始终有1个元素。

(如果只有一个元素,则这意味着它是最后一个元素。)

for (int i = 0; i < mimeList.size(); i++) { 
    StringBuffer sb = new StringBuffer(); 

    if() { 
     queryString = sb.append(queryString).append(key) 
     .append("=").append(mimeList.get(i)).append(" or ").toString(); 
    }else{ 
     queryString = sb.append(queryString).append(key) 
     .append("=").append(mimeList.get(i)).toString(); 
    } 
} 
+1

'如果(!(我== 0 ||我== mimeList.size() ))'? – 2012-08-06 13:07:25

+0

很难理解你到底在问什么...... – auser 2012-08-06 13:07:46

+0

@auser如果是空白的,一定是他想要的代码在哪里? – Joshua 2012-08-06 13:08:07

回答

5

没有太多检查的简单方法是使用分隔符,该分隔符在开始时为空。

StringBuilder sb = new StringBuilder(); 
String sep = ""; 
for (String s : mimeList) { 
    sb.append(sep + key + "=" + s); 
    sep = " or "; 
} 
+0

:我编辑了我的问题。 Plz chk和帮助。 如果mimeList中的元素是Last,则转到else部分。或者如果。 – GameBuilder 2012-08-06 14:16:31

+0

所有你需要的是“或”在键=值对之间。这是最简单的方法。你不需要'if',你不需要重复代码。 – 2012-08-06 14:19:19

0

试着这么做

if(i == 0 || i == mimeList.size() - 1) 

希望帮助!

+3

'我'不能等于'mimeList.size()'... – Baz 2012-08-06 13:08:55

+0

是的,在那里有点快。编辑答案。 – Logard 2012-08-06 13:16:33

2

像这样的东西应该工作:if ((i > 0) && (i < mimeList.size() - 1))。由于在基于0的Java集合中,第一个元素将位于0位置,最后一个将位于Collection.Size - 1,因为访问Collection.Size位置会导致出界异常。

+0

我编辑了我的问题。 Plz chk和帮助。 – GameBuilder 2012-08-06 14:13:52

0

你几乎有答案已经在你的代码:从第一你的数组中的最后元素

你循环。

第一:具有指数0, 最后:具有指数(大小 - 1)

这导致以下条件:

if ((i > 0) && (i < mimeList.size() - 1)) 
9

关于你的问题的标题:

获得Java中的ArrayList中的第一个和最后一个元素

它应该是非常简单的:

mimeList.get(0); // To get first 
mimeList.get(mimeList.size()-1); //to get last 

和关于您的if条件:

if(!(i==0 || i==mimeList.size()-1)) 

正如你的话来说喜欢:

如果mimeList元素是第一或最后它否则会进入 其他条件如果条件为

我在if条件中使用了!。 否则,下面是很酷:

if((i>0) && (i!=mimeList.size()-1)) 
+0

不错,看起来很简单! – Ved 2012-08-06 13:12:23

+0

@PriyankDoshi我编辑了我的问题。 Plz chk和帮助。 – GameBuilder 2012-08-06 14:14:49

1

考虑到iIntegerArrayList.

if ((i > 0) && (i < mimeList.size() - 1)) 
+0

技术上'i'是一个'int'(一个基元),而不是'Integer'(一个对象)。 – 2012-08-06 14:13:00

+0

@KumarVivekMitra我编辑了我的问题。 Plz chk和帮助。 – GameBuilder 2012-08-06 14:14:25

2

从我可以从你的问题收集里面,你要像下面这样:

ArrayList<Foo> foos = fooGenerator.generateFoos(); 

for(int i = 0; i < foos.size(); i++) { 
    if(i != (foos.size() - 1)) { 
     System.out.println("Front elements of ArrayList"); 
    } 
    else { 
     System.out.println("Last element of ArrayList!"); 
    } 
} 
+0

我编辑了我的问题。 Plz chk和帮助。 – GameBuilder 2012-08-06 14:16:49

1
ArrayList<int> foos = ArrayList<int>(); 

第一个是

foos.get(0); 

最后是

foos.get(foo.size - 1); 
相关问题