深入理解java基础 -- 关于循环

foreach 依赖 IEnumerable.

for 循环每次循环会调用 GetCount() 来比较长度. 而 foreach 不考虑长度,只调用一次GetList()

foreach语句的局限性 

如果要引用数组或者集合的索引,则foreach语句无法做到,foreach仅仅老老实实地遍历数组或者集合一遍。

总结如下:

1.如果只是遍历集合或者数组,用foreach好些,快些。

2.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用。iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。

3.在固定长度或长度不需要计算的时候for循环效率高于foreach。

4.在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便,并且foreach的时候会锁定集合中的对象.期间不能修改。

猜你喜欢

转载自blog.csdn.net/u011877409/article/details/80300053