| for | foreach | |
|---|---|---|
| 跳跃访问 | 能 | 否 |
| 修改当前访问值 | 能(但不能删除) | 否 |
| 集合类型 | 效率稍高 | 稍低 |
| 数组类型 | 效率稍低 | 稍高 |
| 链表LinkedList | 稍低 | 稍高 |
两种方式在遍历数组的时候时间普遍都较快,在遍历集合的时候耗时会更久一些。在遍历数组时,foreach的表现要稍微好一点,在遍历集合的时候,for的表现要好一点。但是不管哪种情况,for和foreach这两种遍历方式时间都相差不大。因此对于这两者的比较在时间效率来说应该相差不会很大(上面没有测试复杂数据的情况,以及其他集合结果的情况,可能不准确)。主要是在对于两者的应用场景上的选择:
(1)普通for循环可以根据下标来访问;
(2)foreach在代码结构上更加清晰、简单;
(3)foreach在遍历的时候会锁定集合中的对象,期间不能修改,而for能对集合中的元素进行修改。