for、foreach、Iterator迭代效率

public class TestFor {

public static void main(String [] args){

String ss = "aa";

List<Integer> list = new ArrayList<Integer>();

for (int i=0; i<1000;i++){
list.add(i);
}
int size = list.size();
//普通的for
Long l1 = System.currentTimeMillis();
for(int i=0; i<1000; i++){
for(int j=0; j<size; j++){
list.get(j);
}
}
//foreach
Long l2 = System.currentTimeMillis();
for(int i=0;i<1000;i++){
for(Integer obj:list){

}
}
Long l3 = System.currentTimeMillis();
for(int i=0; i<1000; i++){
Iterator it =list.iterator();
while (it.hasNext()){
it.next();
}
}
Long l4 = System.currentTimeMillis();

System.out.println("普通for:"+(l2-l1));
System.out.println("foreach:"+(l3-l2));
System.out.println("Iterator:"+(l4-l3));

}

}

測試結果當迭代次數較小時,效果不明顯,當把遍歷次數增大,10000,結果顯示爲:

可以看出普通for循環是效率最高的。foreach是效率最低的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章