搞懂JAVA集合類 HashMap 三

2021-07-24 05:55:48 字數 634 閱讀 1981

hashmap底層是雜湊表實現(格式像陣列鍊錶的組合):

hashmap基於雜湊表的 map 介面的實現。此實現提供所有可選的對映操作,並允許使用 null 值和 null 鍵。由於儲存位置由hashcode確定,所以此類不保證對映的順序,因為新插入值特別是它不保證該順序恆久不變。

hashmap 的例項有兩個引數影響其效能:初始容量( 預設值為 16) 和載入因子(預設0.75)。當雜湊表中的條目數超出了載入因子與當前容量的乘積時,則要對該雜湊表進行rehash 操作(即重建內部資料結構),對hash表容量進行擴充套件,擴充套件後雜湊表將具有大約兩倍的桶數。初始容量必須是2的n次冪,所以如果自行設定初始容量,那麼實際的初始容量是不大於設定的初始容量的值,且等於2的n次冪的數。這裡之所以需要用2的n次冪是因為擴容的時候實際採用移位運算(效率高)

hashmap中儲存物件為entry,這個物件包括了key和value以及鍊錶中下乙個entry等資訊

entry在hash表中儲存位置一般情況是通過hash(key)%len獲得,也就是元素的key的雜湊值對陣列長度取模得到,如果算出來一樣就會儲存到衝突表裡面去,這樣會降低查詢效率(增加鍊錶檢索操作)

徹底搞懂Python集合

四 序列解包 五 python集合應用案例 直接將集合賦值給變數即可建立乙個集合物件。a 建立集合物件使用函式set 函式將列表 元組 字串 range物件等其他可迭代物件轉換為集合,如果原來的資料中存在重複元素,則在轉換為集合的時候只保留乙個 如果原序列或迭代物件中有不可雜湊的值無法轉換成為集合,...

Java 集合類詳解

上述類圖中,實線邊框的是實現類,比如arraylist,linkedlist,hashmap等,折線邊框的是抽象類,比如abstractcollection,abstractlist,abstractmap等,而點線邊框的是介面,比如collection,iterator,list等。發現乙個特點,...

Java 集合類學習

繼承關係圖 1 list 有序 索引 可重複 list裡存放的物件是有序的,同時也是可以重複的,list關注的是索引,擁有一系列和索引相關的方法。arraylist 陣列 快速訪問 arraylist可以理解成乙個可增長的陣列,因此可以通過索引快速訪問。linkedlist 鍊錶 快速插入 刪除 l...