java之list刪除的坑

2021-08-13 04:49:19 字數 450 閱讀 3517

今天碼**,遇到個蠻奇葩的問題,list刪除資料,先for迴圈一遍,然後根據i的值來刪除,結果最後發現結果總不是想要的,蠻蛋疼的,小結一下吧。

如果只是要刪除list中的乙個資料,直接刪除就行。

如果遍歷一遍list的同時想刪除多個資料就要注意了,這個時候要考慮到list的性質,

錯誤例子:

for(int j=0;jif(list.get(j).get("prov").tostring().equals("ss"))

}瀟瀟灑灑的寫的**,發現結果不是自己想要的,原因呢?

根本原因就是list每次remove後後面的元素都會向前移動,如果現在i++,那麼就會導致錯過乙個元素,最後刪除的不是自己想刪除的資料!

正確例子:

for(int j = list.size()-1;j>=0;j--) }

這裡採用倒序的方式來刪除,就不會碰到之前的問題了。

java 集合框架 之 list

list 介面 常見實現類 arraylist是基於陣列實現的,是乙個陣列佇列。可以動態的增加容量!查詢快 1.增加乙個值 list nums new arraylist nums.add 3 nums.add 5 nums.add 1 nums.add 0 system.out.println n...

Java之List集合排序

1.類實現comparable 介面 public class book implements comparable public void setbookname string bookname public double getunitprice public void setunitprice...

關於list在遍歷中,做出刪除操作的坑

建議如果有時間的同學可以去阿里雲考一下這個認證,考試通過會發乙個電子認證證書,有效期兩年。listlist new arraylist list.add 1 list.add 2 for string item list 以上 的執行結果肯定會出乎大家的意料,那麼試一下把if中的 1 換成 2 會是...