1.在固定长度或者长度不需要计算的时候for循环效率高于foreach,在不确定长度或者计算长度有损性能的时候用foreach比较方便
2.foreach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高。
3.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。
4.forEach相比普通的for循环的优势在于对稀疏数组的处理,会跳过数组中的空位。