Java的foreach循环:for(Integer i:list){...} [英] Java foreach loop: for (Integer i : list) { ... }

查看:582
本文介绍了Java的foreach循环:for(Integer i:list){...}的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  ArrayList< Integer>当使用JDK5时, list = new ArrayList< Integer>(); 
for(Integer i:list){

//不能检查是否已经达到最后一个项目

}

另一方面,如果我只是使用 Iterator

  ArrayList< Integer> list = new ArrayList< Integer>(); 
for(Iterator i = list.iterator(); i.hasNext();){

//我可以检查这是否是最后一项
if(i.hasNextItem ()){
}

}

检查我是否已经用为(Integer i:list){< $ code>

解决方案<一个方法是使用计数器:

  ArrayList< Integer> list = new ArrayList< Integer>(); 
...
int size = list.size();
for(Integer i:list){
...
if(--size == 0){
//最后一项。
...
}
}

编辑不管怎样,正如汤姆·霍金(Tom Hawtin)所说的,当你需要获取当前的索引信息时,使用旧 for 循环或迭代器,因为使用Java5语法时所获得的所有内容都将在循环中丢失。 。

  for(int i = 0; i< list.size(); i ++){
.. 。

if(i ==(list.size() - 1)){
//最后一项...
}
}

 如果(!it.hasNext()){
// if最后一项...
}
}


When I use JDK5 like below

ArrayList<Integer> list = new ArrayList<Integer>();  
     for (Integer i : list) { 

      //cannot check if already reached last item

   }

on the other hand if I just use an Iterator

ArrayList<Integer> list = new ArrayList<Integer>();
  for (Iterator i = list.iterator(); i.hasNext();) {

          //i can check whether this is last item
          if(i.hasNextItem()){
          }

    }

How can I check if I've already reached last item with for (Integer i : list) {

解决方案

One way to do that is to use a counter:

ArrayList<Integer> list = new ArrayList<Integer>();
...
int size = list.size();
for (Integer i : list) { 
    ...
    if (--size == 0) {
        // Last item.
        ...
    }
}

Edit

Anyway, as Tom Hawtin said, it is sometimes better to use the "old" syntax when you need to get the current index information, by using a for loop or the iterator, as everything you win when using the Java5 syntax will be lost in the loop itself...

for (int i = 0; i < list.size(); i++) {
    ...

    if (i == (list.size() - 1)) {
        // Last item...
    }
}

or

for (Iterator it = list.iterator(); it.hasNext(); ) {
    ...

    if (!it.hasNext()) {
        // Last item...
    }
}

这篇关于Java的foreach循环:for(Integer i:list){...}的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆