第一種:迭代器遍歷
for(Iterator<String> it = list.iterator(); it.hasNext(); ) {
....
}
這種方式在循環執行過程當中會進行數據鎖定,性能稍差,同時若是你想在循環過程當中去掉某個元素,只能調用it.remove方法,不能使用list.remove方法
第二種:加強for循環
for(String data : list) {
.....
}
內部調用第一種,換湯不換藥,所以比Iterator慢,這種循環方式還有其餘限制,不建議使用它
第三種:
for(int i=0; i<list.size(); i++) {
A a = list.get(i);
...
}
內部不鎖定, 效率最高, 可是遍歷時list.remove會致使list的索引起生變化,因此很容易出現問題
結論:遍歷訪問:使用for循環
遍歷移除:使用iterator循環