ConcurrentModificationException的原因以及解决措施
1. ConcurrentModificationException异常出现的原因 先看下面这段代码: package test; import java.util.ArrayList; import java.util.Iterator; public class test { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(2); Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()) { Integer integer = iterator.next(); if (integer == 2) list.remove(integer); } } } 运行结果: 从异常信息可以发现,异常出现在checkForComodification()方法中。 我们不忙看checkForComodification()方法的具体实现,我们先根据程序的代码一步一步看ArrayList源码的实现: 首先看ArrayList的iterator()方法的具体实现,查看源码发现在ArrayList的源码中并没有iterator()这个方法