Java LinkedList迭代时删除的最安全方法

Java LinkedList迭代时删除的最安全方法,java,collections,iterator,Java,Collections,Iterator,我记得很久以前(我认为这是一些Java书籍)在遍历集合时删除元素最安全的方法是使用iterator.remove while(iterator.hasNext()) { if(it.next().condition()) iterator.remove(); } 由于我找不到该引用并且需要相对快速的确认,一些java老手可以确认吗?这是在迭代过程中从结构上修改LinkedList的唯一合法方法 在迭代过程中,从链表中删除元素的任何其他方法(如果幸运的话)都会抛出一个C

我记得很久以前(我认为这是一些Java书籍)在遍历集合时删除元素最安全的方法是使用
iterator.remove

 while(iterator.hasNext())
 {
    if(it.next().condition())
      iterator.remove();
 }
由于我找不到该引用并且需要相对快速的确认,一些java老手可以确认吗?

这是在迭代过程中从结构上修改
LinkedList
的唯一合法方法

在迭代过程中,从链表中删除元素的任何其他方法(如果幸运的话)都会抛出一个
ConcurrentModificationException

发件人:

此类的
迭代器
列表迭代器
方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时候,列表在结构上被修改,除了通过迭代器自己的
删除
添加
方法之外的任何方式,迭代器将抛出一个
ConcurrentModificationException


请参见此处的第一个要点: