平時(shí)我們?cè)陧?xiàng)目中午衰,對(duì)List集合或者map進(jìn)行迭代并進(jìn)行增加或者刪除操作時(shí)立宜,就會(huì)出現(xiàn)java.util.ConcurrentModificationException 這個(gè)異常信息。下面我們就來討論以下這個(gè)異常出現(xiàn)的原因以及解決辦法臊岸。
看上圖橙数,運(yùn)行這段代碼,就會(huì)拋出異常帅戒。
解決方案:
一 單線程:
在iterator類中有一個(gè)remove()方法灯帮,看下圖
在這個(gè)方法中刪除元素實(shí)際上調(diào)用的就是list.remove()方法,因此逻住,在迭代器中如果要?jiǎng)h除元素的話钟哥,需要調(diào)用Itr類的remove方法。
將上述代碼改為下面這樣就不會(huì)報(bào)錯(cuò)了:
多線程的解決方案等我晚上回去再說