java.util.ConcurrentModificationException叫做并发修改异常
在对集合的学习中有个例子:看如下代码,注意红色字体处
public class TestArrayList { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("麻子"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String s = iterator.next(); System.out.println(s); if (s.equals("李四")) { list.remove("李四"); } } } }
运行改代码的时候就会出现java.util.ConcurrentModificationException,既然叫并发修改异常,那为什么会出现在单线程程序中呢?分析如下,调试过程中顺便看下一些方法的源码
先看一下Iterator类,此类是ArrayList的内部类,用来对集合元素进行迭代的
该类中,hasNext()方法用来判断是否还有下一个元素,next用来获取下一个元素,remove用来删除当前元素,成员变