Java集合(三):TreeMap-红黑树实现原理

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、从任意节点到每个叶子的所有路径都包含相同数量的黑节点

增加节点

约定名称:
Java集合(三):TreeMap-红黑树实现原理

大体分为以下几种情形

Java集合(三):TreeMap-红黑树实现原理

增加详细解释:https://www.jianshu.com/p/96e652ccf720

删除节点

Java集合(三):TreeMap-红黑树实现原理

增加详细解释:https://www.jianshu.com/p/84416644c080

上一篇:在实体类中临时返回特定字段@Transient


下一篇:Java transient关键字的使用,Java开发者跳槽面试