問題描述:
如上圖所示,如果依靠迭代器在List中查找元素並添加元素,會報錯:java.util.ConcurrentModificationException
原因是在添加元素后,List本身發生了變化,而迭代器是依賴集合的,這樣就會使迭代器發生變化。
總結起來就是:在用迭代器進行遍歷集合的時候,不能通過集合去修改元素
修改方法:
1、使用for循環
備注:這樣還是有問題的,如果要添加的元素和要查找的元素相同,都是world,則一直會找到world元素,該方法會一直添加元素直到內存耗盡,
所以,推薦使用第二種方法(避免了這個問題),見下圖
2、使用List特有迭代器ListIterator,用此迭代器去添加元素(元素添加在查找到的元素后邊)