【发布时间】:2012-09-19 10:55:02
【问题描述】:
我正在尝试遍历一个列表,同时已经在遍历它(嵌套循环)。考虑下面的代码:
ArrayList<Integer> list = new ArrayList<Integer>(); // add some values to it
for(int i : list) { // ConcurrentModificationException
Iterator iterator = list.iterator();
while(iterator.hasNext()) {
int n = iterator.next();
if(n % i == 0) {
iterator.remove();
}
}
}
上面的示例导致 ConcurrentModificationException。当然,删除元素的条件只是一个例子。
我确定我只是错过了一些东西;但是我应该如何在 Java 中构造一个实现相同目的的循环而不抛出异常?
【问题讨论】:
-
对问题标题的任何建议都非常感谢。