我读到在迭代Collection时删除元素的正确方法是这样的(使用迭代器):
List<Integer> list = new ArrayList<Integer>();
list.add(12);
list.add(18);
Iterator<Integer> itr = list.iterator();
while(itr.hasNext()) {
itr.remove();
}
但是,我收到Exception in thread "main" java.lang.IllegalStateException
,我不知道为什么。
有人能帮助我吗?
答案 0 :(得分:6)
通过在迭代器上调用the next()
method,您永远不会前进到下一个元素。尝试:
while(itr.hasNext()) {
System.out.println("Removing " + itr.next()); // Call next to advance
itr.remove();
}