JAVA中循環刪除list中元素的方法總結

一、JAVA中循環遍歷list有三種方式for循環、加強for循環(也就是常說的foreach循環)、iterator遍歷併發

for循環遍歷list(會報錯函數

  • 問題在於,刪除某個元素後,list的大小發生了變化,而你的索引也在變化,因此會致使你在遍歷的時候漏掉某些元素
  • 這種方式能夠用在刪除特定的一個元素時使用,但不適合循環刪除多個元素時使用

加強for循環(單線程main函數測試,也會報錯測試

  • 刪除元素後繼續循環會報錯誤信息ConcurrentModificationException
  • 由於元素在使用的時候發生了併發的修改,致使異常拋出
  • 可是刪除完畢立刻使用break跳出,則不會觸發報錯

iterator遍歷線程

  • 這種方式能夠正常的循環及刪除
  • 但要注意的是,請使用iterator的remove方法
  • 若是用list的remove方法一樣會報上面提到的ConcurrentModificationException錯誤

總結:blog

  • 循環刪除list中特定一個元素的,能夠使用三種方式中的任意一種,但在使用中要注意上面分析的各個問題
  • 循環刪除list中多個元素的,應該使用迭代器iterator方式
相關文章
相關標籤/搜索