邊遍歷邊修改 Collection 的唯一正確方式是使用 Iterator.remove() 方法,如下:

一種最常見的錯誤代碼如下:

運行以上錯誤代碼會報 ConcurrentModificationException 異常。這是因為當(dāng)使用 foreach(for(Integer i : list)) 語句時,會自動生成一個iterator 來遍歷該 list,但同時該 list 正在被 Iterator.remove() 修改。Java 一般不允許一個線程在遍歷 Collection 時另一個線程修改它。

京公網(wǎng)安備 11010802030320號