Java集合(三):TreeMap-紅黑樹實現原理
阿新 • • 發佈:2021-09-17
TreeMap實現原理其實就是紅黑樹得實現原理
內部引數
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializable { //比較器,TreeMap是有序的,通過此介面對TreeMap內部進行精密控制 private final Comparator<? super K> comparator; //紅黑樹節點,TreeMap內部類 private transient Entry<K,V> root; //大小 private transient int size = 0; //修改次數 private transient int modCount = 0; //顏色 private static final boolean RED = false; private static final boolean BLACK = true; }
紅黑樹規定
1、每個節點只能是紅色或黑色
2、根節點是黑色
3、每個葉節點(葉子節點、空節點)為黑色
4、一條路徑上不能出現兩個連續紅節點(紅節點的所有子節點和父節點都是黑色)
5、從任意節點到每個葉子的所有路徑都包含相同數量的黑節點
增加節點
約定名稱:
大體分為以下幾種情形
增加詳細解釋:https://www.jianshu.com/p/96e652ccf720