平时我们在项目中,对List集合或者map进行迭代并进行增加或者删除操作时,就会出现java.util.ConcurrentModificationException 这个异常信息。下面我们就来讨论以下这个异常出现的原因以及解决办法。
看上图,运行这段代码,就会抛出异常。
解决方案:
一 单线程:
在iterator类中有一个remove()方法,看下图
在这个方法中删除元素实际上调用的就是list.remove()方法,因此,在迭代器中如果要删除元素的话,需要调用Itr类的remove方法。
将上述代码改为下面这样就不会报错了:
多线程的解决方案等我晚上回去再说