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è)方法,可以將集合中的元素倒序遍歷。需要注意的是在倒序遍歷之前要將集合先正序遍歷。

