集合 使用for迴圈刪除

2021-10-02 02:25:20 字數 748 閱讀 5766

1.使用for迴圈遍歷集合進行刪除

public static void main(string args) 

system.out.println(strlist);

//結果 [b, d]

}

檢視當前**結果 輸出為b,d 只刪除了兩個元素:

迴圈了幾次:3次

第一次 i=0 , 集合長度 為4,集合為: [a, b, c, d],   移除元素 a   

第二次 i=1 ,集合長度 為3, 集合為: [b, c, d],        移除元素 c (下標為1的 c)

第三次 i=2 ,集合長度 為2(結束迴圈), 集合為:[b,  d]

public static void main(string args) 

system.out.println(strlist);

//結果 [c, d]

}

檢視當前**結果 輸出為c,d 只刪除了前兩個元素:

迴圈了幾次:3次

第一次 i=0 , 集合長度 為4,集合為: [a, b, c, d],   移除元素 a   

第二次 i=1 ,集合長度 為3, 集合為: [b,c, d],        移除元素b

第三次 i=2 ,集合長度 為2(結束迴圈), 集合為:[c,  d]

由此可以看出 在迴圈時 集合的長度在變化,判斷出現錯誤,可以把集合的長度賦乙個變數,這樣才能迴圈4次 

List迴圈刪除集合

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

java中for迴圈刪除集合陷阱

因為集合的 大小是動態變化 的,當你刪除乙個元素之後,元素中的序號又重新排列,原來第二個應該刪除的元素現在排在了第乙個元素的位置,真正刪除的卻是第三個元素,依次類推,刪除的是第乙個 第三個 第五個 解決辦法 1.迭代器 iteratorit list.iterator while it.hasnex...

集合迴圈刪除元素的報錯

拋concurrentmodificationexception異常!foreach 寫法實際上是對的 iterable hasnext next 方法的簡寫。因此我們從list.iterator 著手分析,跟蹤 iterator 方法,該方法返回了 itr 迭代器物件。找到 list 的迭代器類 ...