Java LinkedList 迭代时删除的最安全方法
Java LinkedList safest way to delete while iterating
我记得很久以前(我认为那是一些 Java 的书),在遍历集合时删除元素的最安全方法是使用 iterator.remove
.
while(iterator.hasNext())
{
if(it.next().condition())
iterator.remove();
}
由于我找不到那个参考,需要一个相对快速的确认,一些java老手可以确认一下吗?
这是唯一在迭代期间结构修改LinkedList
的合法方法。
在迭代期间从链表中删除元素的任何其他方法(如果你 幸运 )将抛出 ConcurrentModificationException
.
The iterators returned by this class's iterator
and listIterator
methods are fail-fast: if the list is structurally modified at any time after the iterator is created, in any way except through the Iterator's own remove
or add
methods, the iterator will throw a ConcurrentModificationException
.
我记得很久以前(我认为那是一些 Java 的书),在遍历集合时删除元素的最安全方法是使用 iterator.remove
.
while(iterator.hasNext())
{
if(it.next().condition())
iterator.remove();
}
由于我找不到那个参考,需要一个相对快速的确认,一些java老手可以确认一下吗?
这是唯一在迭代期间结构修改LinkedList
的合法方法。
在迭代期间从链表中删除元素的任何其他方法(如果你 幸运 )将抛出 ConcurrentModificationException
.
The iterators returned by this class's
iterator
andlistIterator
methods are fail-fast: if the list is structurally modified at any time after the iterator is created, in any way except through the Iterator's ownremove
oradd
methods, the iterator will throw aConcurrentModificationException
.