快捷搜索:  汽车  科技

java for循环和while循环区别(java:for-each循环优于传统for循环)

java for循环和while循环区别(java:for-each循环优于传统for循环)这些做法都比while循环更好,但在迭代器和索引变量的使用都可能会出现一些错误。对比之下,java1.5发行版本中引入的for-each循环,因为它隐藏迭代器或索引变量,避免了出错的可能,并且它同样适用于集合和数组,如下:}遍历数组的首选做法如下:for(int i=0;i<a.length;i ){doSomething(a[i]);

一般情况下,我们对集合的遍历的首选做法如下:

for(iterator i=c.iterator();i.hasNext();){

doSomething((Element)i.next());

}

遍历数组的首选做法如下:

for(int i=0;i<a.length;i ){

doSomething(a[i]);

}

这些做法都比while循环更好,但在迭代器和索引变量的使用都可能会出现一些错误。对比之下,java1.5发行版本中引入的for-each循环,因为它隐藏迭代器或索引变量,避免了出错的可能,并且它同样适用于集合和数组,如下:

for(Element e: element){

doSomething(e);

}

利用for-each循环不会有性能损失,比起普通的for循环,它还有性能优势。

以下代码是我们在试图对两个集合进行嵌套迭代时经常会犯的错:

java for循环和while循环区别(java:for-each循环优于传统for循环)(1)

而如果使用for-each循环,这个问题就不用考虑,如下:

java for循环和while循环区别(java:for-each循环优于传统for循环)(2)

因为for-each循环在简洁性和预防Bug方面有着传统的for循环无法比拟的优势,并且没有性能损失,应该尽可能用for-each循环,但也有三种情况无法使用:

1、过滤——如果遍历集合的时候,并删除选定的元素,就需要使用显式的迭代器,以便可以调用它的remove方法。

2、转换——如果遍历列表或数组的时候,需要取代它部分或者全部元素,就需要列表迭代器或者数组索引,以便设定元素的值。

3、平行迭代——如果需要并行地遍历多个集合,就需要显示地控制迭代器或者索引变量,以便所有迭代器或者索引变量都可以得到同步前移。

猜您喜欢: