首先增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的,但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
结论:
如果是ArrayList,用三种方式遍历的速度是for>Iterator>foreach,速度级别基本一致;
如果是LinkedList,则三种方式遍历的差距很大了,数据量大时越明显(一般是超过100000级别),用for遍历的效率远远落后于foreach和Iterator,Iterator>foreach>>>for;
过程:
模拟100000条数据,放入ArrayList和LinkedList,对两个List分别用三种方式进行遍历,耗时如下图所示:
public class Test {
public static void main(String[] args) {
// 初始化
List<String> arrList = new ArrayList<String>();
List<String> linkList = new LinkedList<String>();
for (int i = 0; i < 100000; i++) {
arrList.add( String.valueOf( i ) );
linkList.add( String.valueOf( i ) );
}