Java LinkedList迭代时删除的最安全方法
我记得很久以前(我认为这是一些Java书籍)在遍历集合时删除元素最安全的方法是使用Java LinkedList迭代时删除的最安全方法,java,collections,iterator,Java,Collections,Iterator,我记得很久以前(我认为这是一些Java书籍)在遍历集合时删除元素最安全的方法是使用iterator.remove while(iterator.hasNext()) { if(it.next().condition()) iterator.remove(); } 由于我找不到该引用并且需要相对快速的确认,一些java老手可以确认吗?这是在迭代过程中从结构上修改LinkedList的唯一合法方法 在迭代过程中,从链表中删除元素的任何其他方法(如果幸运的话)都会抛出一个C
iterator.remove
while(iterator.hasNext())
{
if(it.next().condition())
iterator.remove();
}
由于我找不到该引用并且需要相对快速的确认,一些java老手可以确认吗?这是在迭代过程中从结构上修改LinkedList
的唯一合法方法
在迭代过程中,从链表中删除元素的任何其他方法(如果幸运的话)都会抛出一个ConcurrentModificationException
发件人:
此类的迭代器
和列表迭代器
方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时候,列表在结构上被修改,除了通过迭代器自己的删除
或添加
方法之外的任何方式,迭代器将抛出一个ConcurrentModificationException
请参见此处的第一个要点: