[英]Java LinkedList safest way to delete while iterating
我記得有一段時間(我認為這是一本Java書),在迭代集合時刪除元素最安全的方法是使用iterator.remove
。
while(iterator.hasNext())
{
if(it.next().condition())
iterator.remove();
}
由於我找不到那個引用並需要相對快速的確認,有些java老手可以證實這一點嗎?
這是在迭代期間對LinkedList
進行結構修改的唯一合法方法。
在迭代期間從鏈表中刪除元素的任何其他方法都會(如果幸運的話 )拋出ConcurrentModificationException
。
從文檔 :
此類的
iterator
和listIterator
方法返回的iterator
是快速失敗的:如果在創建迭代器之后的任何時候對列表進行結構修改,除了通過Iterator自己的remove
或add
方法之外,迭代器將拋出ConcurrentModificationException
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.