这很简单,看看迭代器的源码就可以发现,每当执行到while(it.haxNext()){,java虚拟机会自动执行ArrayList类中的checkForComodification方法。[code=java]private void checkForComodification() {
if (this.modCount != l.modCount)
throw new ConcurrentModificationException();
}[/code]而这个方法用来比较modCount和expectedModCount是否相等,但是你在循环遍历的时候添加了又添加了一个元素,改变集合的大小,导致modCount和expectedModCount不相等,自然会抛出ConcurrentModificationException(throw new ConcurrentModificationException();) |