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...