如何在迴圈中刪除List集合中的元素

2021-09-23 23:58:18 字數 507 閱讀 8426

一、首先是最基本的for迴圈

for(int i=0;iremove()方法刪除元素後會立刻更新list的size,因此index也發生了變化,會導致漏掉某些元素。解決辦法1、在刪除某乙個元素後直接break,當然這種情況只適合刪除乙個特定元素,不適合刪除多個元素。解決辦法2、index回退一位。如下:

for(int i=0;i二、foreach迴圈

for(string x:list)

刪除元素後如果繼續迴圈會報併發異常concurrentmodificationexception,因為元素在使用過程中發生了併發修改。解決辦法1、在刪除某乙個元素後直接break,當然這種情況只適合刪除乙個特定元素,不適合刪除多個元素。

三、使用iterator,最優解決方法

iteratorit = list.iterator();

while(it.hasnext())

}

迴圈中刪除List中的元素

remove 方法刪除元素後會立刻更新list的size,因此index也發生了變化,會導致漏掉某些元素。for int i 0 i解決方案一 在刪除某乙個元素後直接break,當然這種情況只適合刪除乙個特定元素,不適合刪除多個元素 解決方案二 index回退一位,如下 for int i 0 i刪...

List迴圈刪除集合

目錄 for迴圈遍歷list 增強for迴圈遍歷list 迭代器iterator的remove方法 建立新的物件新增值 刪除後list大小發生變化,因此索引發生變化,所以刪除的元素不是你想要的 解決辦法 倒著遍歷list集合 public static void main string args s...

迴圈list刪除自己本身的集合

控制台輸出結果 a,b,b,c 有兩個2沒有刪除掉 這是因為當i 1時,滿足條件執行刪除操作,會移除第乙個b,接著第二個b會前移到第乙個b的位置,即游標1對應的是第二個b。接著遍歷i 2,也就跳過第二個b。list templist new list for int i templist.count...