關於HashMap的資料結構

2021-10-06 01:57:45 字數 1058 閱讀 6056

一hashmap的資料結構

jdk1.8以前是陣列+鍊錶

jdk1.8以後是陣列+鍊錶+紅黑色

二資料結構的物理結構

是指資料的邏輯結構在計算機中的儲存形式

資料元素的儲存結構形式有如下兩種:

兩種結構,各有優點和缺點,可以相互結合的運用 

hashmap正好兩種資料結構都用到了

三陣列

hashmap的主幹資料結構是陣列,即key經過hash計算後將節點物件存放到陣列對應的位置上。

四鍊錶

五紅黑樹

jdk1.8以後,如果某一條鍊錶的長度超過8(預設),則轉為紅黑樹的儲存方式。

六什關於紅黑樹

1二叉查詢樹:

1、左子樹上所有節點的值均小於或等於他的根節點的值

2、右子樹上所有節點的值均大於或等於他的根節點的值

3、左右子樹也一定分別為二叉排序樹

下面為標準的二叉查詢樹

2平衡二叉查詢樹

首先是二叉查詢樹

通過一定的變換兩邊保持平衡

3紅黑樹

紅黑樹是二叉查詢樹,類似於平衡二叉查詢樹,但不是絕對的平衡的。

紅黑樹就是一種平衡的二叉查詢樹,說他平衡的意思是他不會變成「瘸子」,左腿特別長或者右腿特別長。除了符合二叉查詢樹的特性之外,還具體下列的特性:

1. 節點是紅色或者黑色

2. 根節點是黑色

3. 每個葉子的節點都是黑色的空節點(null)

4. 每個紅色節點的兩個子節點都是黑色的。

5. 從任意節點到其每個葉子的所有路徑都包含相同的黑色節點。

紅黑樹的查詢效率比煉表高

hashMap的資料結構

在jdk8中,hashmap是用了陣列和鍊錶以及紅黑樹這三種資料結構 首先,在hashmap類中,都有乙個table陣列,我們在儲存資料時,對這個資料的hash值進行一系列的計算 計算出它在table中的位置 下標 並將它存放進去 然而,我們在hashmap是什麼 中提到,不同的物件的hash值可能...

資料結構 手寫hashmap

define size 100 位址鏈個數,足夠大 class simhash public simhash simhash delete map 清除陣列 void insert int key,int value node p map hash key 確定位址鏈索引 node q new no...

Java 資料結構 HashMap

hashmap 特點 1.map 無序不可重複 2.hash 通過map的key的hashcode的一次hash來決定儲存位置,通過key的 與equals方法來確定是否重複 原始碼分析 public v put k key,v value 如果 i 索引處的 entry 為 null,表明此處還沒...