删除元素哦HashSet里面的

Meh*_*hdi 4 java hashset

我想通过一个HashSet for (MyClass edg : myHashSet)和里面for,我想删除我的HashSet的元素.

for (MyClass edg : myHashSet)
{
    if(....)
         myHashSet.remove();
}
Run Code Online (Sandbox Code Playgroud)

但是如果java.util.ConcurrentModificationException在parcour中我如何删除集合中的元素有错误?

Jac*_*nds 6

您可以使用Iterator,而不是使用修改后的for循环.迭代器有一个remove方法可以删除返回的最后一个元素Iterator.next().

for (final java.util.Iterator<MyClass> itr = myHashSet.iterator(); itr.hasNext();) {
    final MyClass current = itr.next();
    if(....) {
        itr.remove();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @ user1149157是的.调用`Iterator.remove()`从HashSet中删除`Iterator.next()`返回的最后一项. (2认同)