一般情况下,在对集合进行迭代(用Iterator)的时候,如果发现集合中的元素被修改了,那么迭代器会抛出ConcurrentModificationException。
下面是一个例子:
List<String> list = new ArrayList<String>(); for (int i = 0; i < 10; i++) { list.add("list_" + i); } for (String str : list) { list.remove(str); }
执行上面代码会抛出
?java.util.ConcurrentModificationException
?? ?at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
?? ?at java.util.AbstractList$Itr.next(AbstractList.java:343)
??? ......
?