目錄
for迴圈遍歷list:
增強for迴圈遍歷list:
迭代器iterator的remove方法:
建立新的物件新增值
刪除後list大小發生變化,因此索引發生變化,所以刪除的元素不是你想要的
解決辦法:
①倒著遍歷list集合;
②修改索引值public static void main(string args)system.out.println(list);
}
刪除後報錯concurrentmodificationexception(public static void main(string args)system.out.println(list);
}
解決辦法:刪除完成後直接break,
原因:foreach方法遍歷遍歷元素的時候生成迭代器iterator,再生成iterator的時候,會儲存乙個expectedmodcount引數,這是生成迭代器時list修改的次數,如果刪除的話,modcount和exceptedmodcount不一致)
直接刪除(原因:給exceptedmodcount重新複製)public static void main(string args)system.out.println(list);
}
listnewlist = new arraylist<>();//不滿足條件的過濾,滿足條件的新增到新的list中
迴圈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...
C 迴圈list刪除自己本身的集合
如果從頭到尾正序遍歷刪除的話,有些符合刪除條件的元素會成為漏網之魚 正序刪除舉例 list string templist newlist string for int i 0 i templist.count i templist.foreach p 控制台輸出結果 a,b,b,c 有兩個2沒有刪...
List 集合 刪除指定行
不多說,直接上 public class name 刪除值為name2的行 static void main string args nlist.add n console.writeline var someone name2 for int i 0 i nlist.count i for int...