gpt4 book ai didi

Java Set迭代器,删除元素安全吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:41 24 4
gpt4 key购买 nike

我想遍历一个集合并从集合中删除符合某些条件的元素。 documentation of iterator在遍历列表时没有提及修改列表。

这可能吗?如果没有,最好的方法是什么?请注意,我只想从迭代器提供的集合中删除元素。

编辑:很快证明这是可能的。我也可以使用以下语法来完成吗?

for(Node n : mySet) {
mySet.remove(n);
}

最佳答案

是的,您可以使用迭代器安全地移除当前元素:

iterator.remove();

javadoc remove() 说:

Removes the specified element from this set if it is present (optional operation). More formally, removes an element e such that (o==null ? e==null : o.equals(e)), if this set contains such an element. Returns true if this set contained the element (or equivalently, if this set changed as a result of the call). (This set will not contain the element once the call returns.)


下一个问题的答案:不,你不能。在使用增强的 for 循环迭代集合时修改集合将导致 ConcurrentModificationException

关于Java Set迭代器,删除元素安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com