Java資料儲存:集合框架與泛型拓展(一)Map
阿新 • • 發佈:2020-10-23
Map
HashMap和TreeMap
- 實現
TreeMap:SortMap介面,基於紅黑樹
HashMap:基於雜湊散列表實現 - 儲存
TreeMap:預設按鍵的升序排序
HashMap:隨機儲存 - 遍歷
TreeMap:Iterator遍歷是排序的
HashMap:Iterator遍歷是隨機的 - 效能損耗
TreeMap:插入、刪除
HashMap:基本無 - 鍵值對
TreeMap:鍵、值都不能為null
HashMap:只允許鍵、值均為null - 安全
TreeMap:非併發安全Map
HashMap:非併發安全Map - 效率
TreeMap:低
HashMap:高
紅黑樹
從上而下,比父節點大的放在左邊,比父節點大的放在右
父母P-Parents
叔叔U- uncle
兄弟B- brother
根 R-root
當前新增節點C-Current
根據x軸遞增的規律來排序
- 紅黑樹特性:
1. 每個節點都有顏色,不是紅色就是黑色
- 根節點是黑色
- 每個葉子節點(NIL)都是黑色的虛點(值)null
- 每個紅色節點的子節點一定是黑色的(紅色節點一定有黑色的父節點)
- 任意節點到每個葉子節點(虛擬的NIL)的路徑都包含相同數量的黑節點
紅黑樹的平衡性- 紅黑樹是一種含有紅黑節點的並能自平衡的二叉查詢樹。
a. 包含變色,旋轉。旋轉包含左旋和右旋。
b. 旋轉節點按照子節點旋轉(子節點為圓心)。 - 紅黑樹是非完美二叉平衡查詢樹,是完美黑色二叉查詢樹
- 紅黑樹是一種含有紅黑節點的並能自平衡的二叉查詢樹。