java.util.ConcurrentModificationExceptionn (null异常由for增强循环嵌套增删引起)
下文笔者讲述ConcurrentModificationExceptionn中null异常的错误的处理解决方法分享,如下所示
问题描述
今天在使用Java代码中 对集合使用增强for循环时 当对集合进行增删操作 再遍历时会引起java.util.ConcurrentModificationException: null异常
原因分析
某个线程在Collection上进行遍历时 通常不允许其他线程修改Collection 这会导致遍历的结果是不确定的 当方法检测到集合发生并发修改时 不允许这种修改 抛出此异常。 在执行增删操作以后 集合expectedModCount和modCount的值不一致 这两个变量的作用都是记录修改次数 二者不相等,就会抛错。 expectedModCount: 表示对Arraylist修改次数的期望值 它的初始值为modCount。 modCount: AbstractList类中的一个成员变量
解决方法
方法一: 使用索引(普通for循环)遍历 方法二: 使用增强for循环遍历 增删操作使用迭代器实现
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。