從hash表到hashMap的理解

2021-09-25 16:26:03 字數 656 閱讀 1953

jdk1.7陣列+鍊錶形式

jdk1.8 陣列+鍊錶/紅黑樹

雜湊表長度不大於8,鍊錶長度達到8,首先進行,resize陣列擴容

如果雜湊表長度大於64,鍊錶長度到達8,就會把鍊錶結構轉化成紅黑樹結構

執行緒安全

實現更加精細,對map集合中的桶加鎖

採用分段鎖,預設

segment的陣列長度

16會記錄集合元素的插入順序

iterator先進先出

遍歷會比hashmap慢,遍歷速度之和元素個數有關,與容量無關

是乙個有序的key-value集合

,它是通過

紅黑樹實現的

key不能為null,因為null不能參與排序

建立乙個空treemap,keys按照自然排序

新增、刪除和定位對映關係上,treemap類要比hashmap類的效能差一些

執行緒安全,

方法幾乎都是同步的

效率key和vlue都不能為null

基於hash表的map集合,陣列加鍊表結構---->jdk1.7與1.8的區別

執行緒不安全----->hashmap/currenthashmap

預設無規則排序----->linkedhashmap(先進先出)

能自定義排序------>treemap

Redis從入門到深入 Hash的value

2.hash型別 2.1 儲存的困惑 物件類資料的儲存如果具有較頻繁的更新需求操作會顯得笨重 2.2 hash型別 2.3 hash型別資料的基本操作 hsethget hgetallhdel field2 hmset hmget hlenhexistshkeys hvalshincrby hinc...

HashMap中的hash演算法總結

演算法一直是我的弱項,然而面試中基本是必考的專案,剛好上次看到乙個hashmap的面試題,今天也來學習下 hashmap中的hash演算法是如何實現的。數學知識回顧 hashmap中的hash演算法 首先要明白乙個概念,hashmap中定位到桶的位置 是根據key的hash值與陣列的長度取模來計算的...

HashMap中的hash演算法總結

演算法一直是我的弱項,然而面試中基本是必考的專案,剛好上次看到乙個hashmap的面試題,今天也來學習下 hashmap中的hash演算法是如何實現的。數學知識回顧 hashmap中的hash演算法 首先要明白乙個概念,hashmap中定位到桶的位置 是根據key的hash值與陣列的長度取模來計算的...