我正在尝试遍历一个列表,同时已经遍历它(嵌套循环)。考虑下面的代码:
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 中实现相同目标而不抛出异常的循环呢?