Map Set List是否有序

2021-09-23 01:38:54 字數 859 閱讀 9360

map、set、list是否有序

參考:先明確一點

這裡的有序和無序不是指集合中的排序,而是是否按照元素新增的順序來儲存物件。

list是按照元素的新增順序來儲存物件的,因此是有序的。他的實現類arraylist、linkedlist、vector都是有序的。

map是無序的,它的儲存結構是雜湊表鍵值對,map中插入元素是根據key計算出的雜湊值來儲存元素的,因此他不是按照元素的新增順序來儲存物件的,所以map是無序的。它的實現類有:hashmap、tablemap和treemap。

hashmap是無序的(雜湊表)

其中linkedhashmap是有序的,hashmap用來保證儲存的值鍵值對,list用來保證插入的順序和儲存的順序一致。

treemap是有序的(二叉樹)

set是無序的,並且set中的元素不能重複。set的底層實現其實是map,它是計算key的雜湊值來確定元素在陣列中的存放位置,所以是無序的,應為在map中key的值不能重複,所以set中的元素不能重複。它的實現類有:haseset、treeset。

hashset是無序的(雜湊表)

其中linkedhashset是有序的,其中haseset用來保證資料唯一,list用來保證插入的順序和儲存的順序一致。

treeset是有序的(二叉樹)

補充

是否允許有重複元素:

collection 是

list 是

hashset 否

treeset 否

hashmap key不允許重複,value可以重複

treemap key不允許重複,value可以重複

Map Set List部分總結

map 鍵值對的儲存方式,無放入順序 hashmap key可有唯一乙個為空,值可以有多個空值,執行緒不同步。hashtable key和value都不可有空值,執行緒同步。linkedhashmap 繼承自hashmap,和hashmap有相同特性,區別是linkedhashmap保留了插入時的順...

資料結構Map Set List

collection list set和map都是介面 inte ce 其中collection是所有集合類的介面,set和list也都實現該介面。set是一種不包含重複的元素的無序collection。一般使用的有hashset和treeset。雖然set同list都實現了collection介面...

scala學習筆記 Map Set List

2 set集合 3 列表 list 1 map 1.1 不可變map 1.2 可變map 1.3 map基本操作 獲取所有的key scala map.keys res36 iterable string set lisi,zhangsan 獲取所有的key scala map.keyset res...