遍歷List集合,在循環中再對List集合進行操作,有時候會遇到ConcurrentModificationException(並發修改異常);其實只有在forEach循環集合再對集合操作會發生異常;這里要先簡單的講forEach循環
forEach
forEach循環也叫增強for循環,其書寫形式:for(元素類型 元素名 :集合);forEach循環比較簡介,也很好用,我個人在編碼中也喜歡用它,但它有幾個特征
1、forEach遍歷時不能再對集合進行操作
2、forEach同時只能遍歷一個
3、遍歷時只有當前被遍歷元素可見,其他不可見
4、只能正向遍歷
forEach循環在對數組進行循環時和for循環是一樣的;但是對List等集合進行遍歷時,實際上遍歷容器使用的方式是通過迭代器來進行的,其來源於Collection繼承了Iterable接口;
一:for循環遍歷集合
for循環遍歷集合,在循環中對集合進行操作完全是沒有問題的;但是,在for循環中對集合進行操作,要特別注意循環的長度及下標;
二:forEach(增強for)循環遍歷結合
可以看到發生了異常;但是如果對元素進行操作后在下一次循環前跳出循環是不會發生異常的;以下代碼可以看到remove后馬上break,則沒有發生異常;