https://www.cnblogs.com/CarpenterLee/p/5503882.html
红黑树的特点:
1. 一个节点只能是黑色或者红色
2. 根节点必须是黑色
3. 不能有两个红色节点相互连接
4. 任何一个节点,它到所有叶子节点对应的所有路径必须包含相同数目的黑色节点
当有节点添加或删除的时候,为了保证红黑树的这四个特征不变,必须对树进行调整:
1. 改变节点颜色
2. 调整节点在树中的位置,通过对节点进行左旋或右旋操作 调整树的结构。
TreeMap底层是用红黑树实现的,
HashMap中也使用了红黑树:数组 + 链表(某个key对应hash 下的链表长度超过8, 链表会转换为红黑树)