Java ConcurrentModificationException 异常原因和解决方法

一般在对容器的元素遍历的过程中出现了对容器的写操作(包括增加、修改和删除操作)时出现。

仔细阅读源码就知道,使用迭代器遍历元素时由一个计数器,这个计数器就是为“快速失败”机制设计的。

Java ConcurrentModificationException 异常原因和解决方法

取下个元素的时候,会判断要修改的数量期待修改的数量是否一致,不一致则会报错,而通过迭代器本身调用remove方法则不会有这个问题,因为它删除的时候会把这两个数量同步。

报错

Java ConcurrentModificationException 异常原因和解决方法

正常删除

Java ConcurrentModificationException 异常原因和解决方法