迭代Collection时删除元素

gis*_*ssi -1 java collections iterator

我读到在迭代Collection时删除元素的正确方法是这样的(使用迭代器):

List<Integer> list = new ArrayList<Integer>();
list.add(12);
list.add(18);

Iterator<Integer> itr = list.iterator();

while(itr.hasNext()) {
    itr.remove();
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到了Exception in thread "main" java.lang.IllegalStateException,我不知道为什么.有人能帮我吗?

rge*_*man 6

你从来没有通过调用前进到下一个元素next()方法上的迭代器.尝试:

while(itr.hasNext()) {
    System.out.println("Removing " + itr.next());  // Call next to advance
    itr.remove();
}
Run Code Online (Sandbox Code Playgroud)