Java的foreach循环:for(Integer i:list){...} [英] Java foreach loop: for (Integer i : list) { ... }
本文介绍了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屋!
查看全文