代码之家  ›  专栏  ›  技术社区  ›  user3213490

迭代列表时删除元素

  •  2
  • user3213490  · 技术社区  · 7 年前

    我正在尝试使用从列表中删除元素 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 回复  |  直到 7 年前
        1
  •  2
  •   Bucket faoud    7 年前

    您正在使用 iterator 但您可以使用 iter . 确保变量名称正确。

    for (Iterator<Punk> iter = list.listIterator(); iter.hasNext(); ) {
        Punk p = iter.next();
    
        if (some condition ) {
            iter.remove();
        }
    }