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

时间:2012-08-06 13:04:51

标签: java arraylist

我有小代码,我必须添加条件才能获得正确的输出。

如果mimeList中的元素为Last,则转到 else 部分。 或 if

此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();
    }
}

8 个答案:

答案 0 :(得分:10)

关于问题的标题:

  

获取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中的元素是第一个或最后一个,它将进入else   在条件

的情况下其他条件

我在if条件下使用了!。  以下是非常酷的:

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

答案 1 :(得分:5)

如果没有大量检查,更简单的方法是使用以空为开头的分隔符。

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

答案 2 :(得分:2)

这样的事情应该有效:if ((i > 0) && (i < mimeList.size() - 1))。由于在Java集合中基于0,因此第一个元素将位于0位置,而最后一个元素将位于Collection.Size - 1,因为访问Collection.Size位置将导致超出范围的异常。

答案 3 :(得分: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!");
    }
}

答案 4 :(得分:2)

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

第一个是

foos.get(0);

最后一个是

foos.get(foo.size - 1);

答案 5 :(得分:1)

i

中考虑IntegerArrayList.
if ((i > 0) && (i < mimeList.size() - 1))

答案 6 :(得分:0)

尝试类似

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

希望有所帮助!

答案 7 :(得分:0)

您的代码中已经有了答案:

first 循环到数组中的 last 元素。

首先:索引为0, 最后:有索引(大小 - 1)

这会导致以下情况:

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