List,Map和Set的區別

2021-07-14 23:43:46 字數 685 閱讀 9930

list特點:元素有放入順序,元素可重複

map特點:元素按鍵值對儲存,無放入順序

set特點:元素無放入順序,元素不可重複(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的hashcode決定的,其位置其實是固定的)

list介面有三個實現類:linkedlist,arraylist,vector

linkedlist:底層基於鍊錶實現,鍊錶記憶體是散亂的,每乙個元素儲存本身記憶體位址的同時還儲存下乙個元素的位址。鍊錶增刪快,查詢慢

arraylist和vector的區別:arraylist是非執行緒安全的,效率高;vector是基於執行緒安全的,效率低

set介面有兩個實現類:hashset(底層由hashmap實現),linkedhashset

sortedset介面有乙個實現類:treeset(底層由平衡二叉樹實現)

query介面有乙個實現類:linklist

map介面有三個實現類:hashmap,hashtable,linkehashmap

hashmap非執行緒安全,高效,支援null;hashtable執行緒安全,低效,不支援null

sortedmap有乙個實現類:treemap

其實最主要的是,list是用來處理序列的,而set是用來處理集的。map是知道的,儲存的是鍵值對

set 一般無序不重複.map kv 結構 list 有序

集合List Map和Set詳解

list是乙個有序,可以存放相同資料集合。其中的子類 底層結構是陣列,所以查詢速度比較快,增刪比較慢,執行緒是不安全的。底層結構是雙向鍊錶,所以增刪快,查詢慢,執行緒安全。底層與arraylist一樣,執行緒是安全的,但是因為效率較慢,已經很少使用了。set是乙個無序集合,其中存放的資料是不可重複的...

List,Map和Set的遍歷方式

public class listforeach 方法一 在for迴圈中使用entries實現map的遍歷 最常見也是大多數情況下用的最多的,一般在鍵值對都需要使用 map map new hashmap map.put 熊大 棕色 map.put 熊二 黃色 for map.entryentry ...

set和setenv的區別

這裡討論的是tcsh中變數及環境變數時set和setenv命令的區別 set語法set name value setenv語法setenv name value 最大的區別是,set變數只對當前程序有效,不會傳遞給子程序 setenv變數不僅對當前程序有效,而且會傳遞給子程序 而當同時使用set和s...