簡體   English   中英

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

文檔

此類的iteratorlistIterator方法返回的iterator是快速失敗的:如果在創建迭代器之后的任何時候對列表進行結構修改,除了通過Iterator自己的removeadd方法之外,迭代器將拋出ConcurrentModificationException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM