Java ConcurrentModificationException 异常原因和解决方法
一般在对容器的元素遍历的过程中出现了对容器的写操作(包括增加、修改和删除操作)时出现。
仔细阅读源码就知道,使用迭代器遍历元素时由一个计数器,这个计数器就是为“快速失败”机制设计的。
取下个元素的时候,会判断要修改的数量和期待修改的数量是否一致,不一致则会报错,而通过迭代器本身调用remove方法则不会有这个问题,因为它删除的时候会把这两个数量同步。
报错
正常删除
一般在对容器的元素遍历的过程中出现了对容器的写操作(包括增加、修改和删除操作)时出现。
仔细阅读源码就知道,使用迭代器遍历元素时由一个计数器,这个计数器就是为“快速失败”机制设计的。
取下个元素的时候,会判断要修改的数量和期待修改的数量是否一致,不一致则会报错,而通过迭代器本身调用remove方法则不会有这个问题,因为它删除的时候会把这两个数量同步。
报错
正常删除