JAVA之List遍歷時(shí)修改元素的問題

List迭代時(shí)修改元素的問題

請(qǐng)編寫代碼完成以下需求:

判斷一個(gè)List里面是否包含monkey,如果包含的話,向集合中添加1024這個(gè)字符串。

上面代碼在向list中添加完元素之后再執(zhí)行到String str =

(String)iter.next();這行時(shí),報(bào)出ConcurrentModificationException異常,通過ArrayList的源碼可以看到,當(dāng)modCount不等于expectedModCount時(shí)才會(huì)報(bào)出這個(gè)異常,上面代碼在遍歷集合時(shí)添加了一個(gè)元素,這樣就修改了集合中的元素個(gè)數(shù),所以會(huì)導(dǎo)致modCount不等于expectedModCount,這樣就會(huì)報(bào)出ConcurrentModificationException異常。

如果想要解決上面的問題,需要使用ListIterator去遍歷,并且使用ListIterator向List中添加元素

ListIterator中方法簡(jiǎn)介

在ListIterator中有個(gè)previous()和hasPrevious()方法,通過這兩個(gè)方法,可以將集合中的元素倒序遍歷。需要注意的是在倒序遍歷之前要將集合先正序遍歷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容