教材是这么说的:迭代器效率高于传统的for循环
然后我测试了一下
import java.util.Iterator;
import java.util.List;
public class demo_Class {
List<Integer> list = List.of(1, 2, 1,2,3,5,5,6,7,8,9,0,2,3,4);
public static void main(String [] arg){
final demo_Class demo_class = new demo_Class();
Long start1 = System.currentTimeMillis();
for (int i =0;i < 10000000;i++){
demo_class.go1();
}
Long end1 = System.currentTimeMillis();
System.out.println("go1 time:"+(end1-start1));
Long start2 = System.currentTimeMillis();
for (int i =0;i < 10000000;i++){
demo_class.go2();
}
Long end2 = System.currentTimeMillis();
System.out.println("go2 time:"+(end2-start2));
}
public void go1(){
for(Iterator<Integer> i = list.iterator();i.hasNext();){
if (i.next() == 4){
return;
}
}
}
public void go2(){
for(int index=0; index < list.size();index++){
if (list.get(index) == 4){
return;
}
}
}
}
结果:跑出来是这样的(forearch一样用时较多) ,传统的for循环用时反而比较少,这是为啥,跑了好几遍了