fail-fast

Posted by 李小武 on December 13, 2011

fail-fast:快速失败

一般情况下,在对集合进行迭代(用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)