Java 在迭代集合时删除元素
我了解到,迭代集合时删除元素的正确方法是使用迭代器:Java 在迭代集合时删除元素,java,collections,iterator,Java,Collections,Iterator,我了解到,迭代集合时删除元素的正确方法是使用迭代器: List<Integer> list = new ArrayList<Integer>(); list.add(12); list.add(18); Iterator<Integer> itr = list.iterator(); while(itr.hasNext()) { itr.remove(); } 但是,我在主线程java.lang.IllegalStateException中收到异
List<Integer> list = new ArrayList<Integer>();
list.add(12);
list.add(18);
Iterator<Integer> itr = list.iterator();
while(itr.hasNext()) {
itr.remove();
}
但是,我在主线程java.lang.IllegalStateException中收到异常,我不知道为什么。
有人能帮我吗?您从未通过调用迭代器前进到下一个元素。尝试:
while(itr.hasNext()) {
System.out.println("Removing " + itr.next()); // Call next to advance
itr.remove();
}
阅读文档,它清楚地指出:IllegalStateException-如果下一个方法尚未调用,或者在上一次调用下一个方法之后已经调用了remove方法