迭代列表时删除元素

时间:2018-02-07 21:43:16

标签: java collections foreach iterator

我正在尝试使用Iterator从列表中删除元素,但我收到以下异常:

java.util.NoSuchElementException

代码:

for (Iterator<Punk> iter = list.listIterator(); iter.hasNext(); ) {
    Punk p = iterator.next();

    if (some condition ) {
        iterator.remove();
    }

    index += 1;
}

我每次只在循环中使用iterator.next()一次,以便它将移动到下一个元素。有人可以帮忙吗?提前致谢!任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您正在使用iterator但是您使用iter迭代此列表。确保您的变量名称正确无误。

for (Iterator<Punk> iter = list.listIterator(); iter.hasNext(); ) {
    Punk p = iter.next();

    if (some condition ) {
        iter.remove();
    }
}