list與Set Map區別及適用場景

2022-08-14 08:33:12 字數 881 閱讀 5101

1、list,set都是繼承自collection介面,map則不是

2、list特點:元素有放入順序,元素可重複 ,set特點:元素無放入順序,元素不可重複,重複元素會覆蓋掉,(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的hashcode決定的,其位置其實是固定的,加入set 的object必須定義equals()方法 ,另外list支援for迴圈,也就是通過下標來遍歷,也可以用迭代器,但是set只能用迭代,因為他無序,無法用下標來取得想要的值。) 

3.set和list對比: 

set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。 

list:和陣列類似,list可以動態增長,查詢元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。 

4.map適合儲存鍵值對的資料

5.執行緒安全集合類與非執行緒安全集合類 

linkedlist、arraylist、hashset是非執行緒安全的,vector是執行緒安全的;

hashmap是非執行緒安全的,hashtable是執行緒安全的;

stringbuilder是非執行緒安全的,stringbuffer是執行緒安全的。

下面是具體的使用介紹:

arraylist:

linkedlist:

優點:linkedlist基於鍊錶的資料結構,位址是任意的,所以在開闢記憶體空間的時候不需要等乙個連續的位址,對於新增和刪除操作add和remove,linedlist比較佔優勢。linkedlist 適用於要頭尾操作或插入指定位置的場景

缺點:因為linkedlist要移動指標,所以查詢操作效能比較低。

適用場景分析:

當需要對資料進行對此訪問的情況下選用arraylist,當需要對資料進行多次增加刪除修改時採用linkedlist。

list與Set Map區別及適用場景

元素有放入順序,元素可重複 set特點 元素無放入順序,元素不可重複,重複元素會覆蓋掉,注意 元素雖然無放入順序,但是元素在set中的位置是有該元素的hashcode決定的,其位置其實是固定的,加入set 的object必須定義equals 方法 另外list支援for迴圈,也就是通過下標來遍歷,也...

Java中Set Map和List的區別

在寫專案的時候遇到了去重,用到了set集合的hashset,查閱了資料 2.list 列表 特徵主要是元素以線性方式儲存,可以存放重複物件。檢索list集合中所有元素的方法 由index指定索引位置下標0開始 1 for迴圈和get 方法 for int i 0 ilist 保證維護元素特定的順序。...

C list及list與vector的區別

list是 雙向迴圈鍊錶。在stl中,list和vector一樣,是兩個常被使用的容器。和vector不一樣的是,list不支援對元素的任意訪問。list中提供的成員函式與vector類似,不過list提供對錶首元素的操作push front pop front,這是vector不具備的。和vect...