1. 程式人生 > >Java遍歷List的幾種方法及其效能比較

Java遍歷List的幾種方法及其效能比較

參考:


StackOverflow 上有人給出了上面幾種遍歷方式。【yasi】個人覺得方法2,即 for (E element : list) 方式最優雅簡潔,其餘幾種方法不夠“現代化”。

StackOverflow 上指出,方法2在效能上和方法3(顯式地對迭代器使用for迴圈)是一樣的。

=====================================

對List的遍歷有三種方式   

第一種:   

for(Iterator<A> it = list.iterator(); it.hasNext();) {   
	......
}
這種方式在迴圈執行過程中會進行資料鎖定,    效能稍差,    同時,如果你想在迴圈過程中去掉某個元素,只能呼叫it.remove方法, 不能使用list.remove方法,  否則一定出併發訪問的錯誤.    第二種:

for(A a : list) {
	......
}
它內部還是呼叫第一種,    換湯不換藥,    這種迴圈方式還有其他限制,    不建議使用它   
    
第三種:   
for(int i = 0; i < list.size(); i++) {
	A a = list.get(i);
	......
}
它內部不做鎖定,    效率最高,    但是當寫多執行緒時要考慮併發操作的問題!