List用法總結

2021-08-01 08:37:08 字數 1220 閱讀 9069

list使用會有一些比較奇怪的問題,使用時需要注意

1. 情況1--list remove有誤

想要按照索引值刪除list的,但是會出現下列問題

public class listutils 

originalist.removeall(removelist);

return originalist;

} public static void main(string args)

}

本來預期的結果應該是[23,2] 但是實際結果是[2]

問題原因: list 允許重複的資料,但是用removeall/或者remove的時候,並不一定刪除乙個,也會將重複的資料刪除。

解決辦法

/**

* remove some indexs of list

* * @param originalist

* @param removepositionlist

* @return

*/public list removelistright(list originalist, listremovepositionlist)

return originalist;

}

同樣list刪除注意要從後往前刪除, 不能從前往後, 因為這種方式的問題在於,刪除某個元素後,list的大小發生了變化,而你的索引也在變化,所以會導致你在遍歷的時候漏掉某些元素。比如當你刪除第1個元素後,繼續根據索引訪問第2個元素時,因為刪除的關係後面的元素都往前移動了一位,所以實際訪問的是第3個元素。因此,這種方式可以用在刪除特定的乙個元素時使用,但不適合迴圈刪除多個元素時使用。

public class test 

}system.out.println(list.size());

}}

2. list交集

list1.retainall(list2)

3. list 去重

public static list removeduplicate(list list)
4. arraylist執行緒不安全, 想要使用執行緒安全的list,需要使用一下方式

list> nocityslist= collections.synchronizedlist(new arraylist<>());

List集合的用法總結

listpsrson new arraylist person.add jackie person.add peter person.add kobe person.add martin person.add marry system.out.println person person.remove...

List和List 的用法

list理解為容器,list裡面裝的是object,list 裡面裝的就是前面宣告的list。舉例 取出所有角色為客服的人員,客服的role sn為3 listmanagerlist managerservice.getmanagerlistbyrole 3 取出每個人所含有的所有角色,list裡裝...

list用法示例詳解

list 元素是有序的 怎麼存的就怎麼取出來,順序不會亂 元素可以重複 角標1上有個3,角標2上也可以有個3 因為該集合體系有索引,arraylist 底層的資料結構使用的是陣列結構 陣列長度是可變的百分之五十延長 特點是查詢很快,但增刪較慢 執行緒不同步 linkedlist 底層的資料結構是鍊錶...