Java遍歷List的幾種方法及其效能比較
阿新 • • 發佈:2019-01-23
參考:
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);
......
}
它內部不做鎖定, 效率最高, 但是當寫多執行緒時要考慮併發操作的問題!