简介
- 一个有序的key-value集合,它是通过红黑树实现的
- 实现了NavigableMap接口,意味着它支持一系列的导航方法。
- 实现了Cloneable接口
- 实现了java.io.Serializable接口
- 适合读取操作频繁,插入、删除操作少的业务,因为红黑书在变动后必须保持平衡
- 基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
- 基本操作 containsKey、get、put 和 remove 的时间复杂度是 log(n) 。
- 是非同步的
- 它的iterator 方法返回的迭代器是fail-fastl的
构造函数
1 | // 默认构造函数。使用该构造函数,TreeMap中的元素按照自然排序进行排列。 |
数据结构
- root 是红黑数的根节点。它是Entry类型,Entry是红黑数的节点
- entry包含了红黑数的6个基本组成成分:key(键)、value(值)、left(左孩子)、right(右孩子)、parent(父节点)、color(颜色)。Entry节点根据key进行排序,Entry中的key比较大小是根据比较器comparator来进行判断的。
- size是红黑数中节点的个数
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接,感谢各位看官!!!
本文出自:monkeyGeek
座右铭:生于忧患,死于安乐
欢迎志同道合的朋友一起交流、探讨!
