Java中for循环遍历有几种常用的方式,普通for,增强for,迭代器遍历下面举个例子:简单创建一个List测试:
// 创建List
List arr = new ArrayList();
arr.add(1);
arr.add(2);
arr.add(3);
System.out.println(arr);
输出结果:
[1, 2, 3]
一、普通for遍历:
// 普通for遍历
System.out.println("普通for遍历");
for(int i=0;i System.out.println(arr.get(i));
}
二、增强for遍历:
// 增强for遍历
System.out.println("增强for遍历");
for(int i:arr){
System.out.println(i);
}
三、迭代器遍历
// 迭代器遍历
System.out.println("迭代器遍历");
Iterator it = arr.iterator();while(it.hasNext()) {
Integer obj = it.next();
System.out.println(obj);
}
整个代码运行结果很完美:
如果我们进一步考虑这三种方式的遍历效率,那该怎么测试呢?因为现在我只加了3个元素,遍历时间会很短,我们无法统计时间,现在我给List里面加100000000个元素,我们在测试遍历时间是否有区别。我通过在程序中加入几个时间点最后做差值来计算遍历时间,我这里把每次遍历的输出给注释掉了,不然控制台打印特别慢,猴年马月都打印不完
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class forbl {
public static void main(String[] args) {
// 创建List
List arr = new ArrayList();for (int i = 0; i < 100000000; i++) {
arr.add(1);
}// System.out.println(arr);
Long a = System.currentTimeMillis();// 普通for遍历
System.out.println("普通for遍历");for(int i=0;i// System.out.println(arr.get(i));
}
Long b = System.currentTimeMillis();// 增强for遍历
System.out.println("增强for遍历");for(int i:arr){// System.out.println(i);
}
Long c = System.currentTimeMillis();// 迭代器遍历
System.out.println("迭代器遍历");
Iterator it = arr.iterator();while(it.hasNext()) {
Integer obj = it.next();// System.out.println(obj);
}
Long d = System.currentTimeMillis();
System.out.println("普通for时间:"+ (b - a));
System.out.println("增强for时间:"+ (c - b));
System.out.println("迭代器时间:"+ (d - c));
}
}
赶快看下期待的结果:
普通for时间:5
增强for时间:102
迭代器时间:103
可以看到普通for速度最快了,为了避免是个例,我又运行了两遍,还是普通for最快,赶快自己动手试一下吧
普通for时间:9
增强for时间:105
迭代器时间:107
普通for时间:4
增强for时间:97
迭代器时间:81
Java学习社区