一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,表明此處還沒...