使用迭代器遍历集合报错:
Exception in thread “main” java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$ Itr.checkForComodification(ArrayList.java:1009)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:963)
at com.lengzher.collection.ListTest.main(ListTest.java:42)
案例如图:
分析问题:
问题产生的原因是在迭代器遍历过程中,使用了Collection的方法来添加元素,除此之外,如果使用了Collection的方法来删除元素同样会报错;
问题解决:
迭代器遍历过程中使用迭代器的ListIterator.add()来添加元素,使用Iterator.remove()、ListIterator.remove()来删除元素;