TreeMap是一个有序的key-value集合,它是通过红黑树实现的。该映射根据其键的自然顺序进行排序 [Comparable或者Comparator]或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法
底层实现和hash表无关
- public class TreeMap
- extends AbstractMap
- implements NavigableMap
, Cloneable, java.io.Serializable
TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。
TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。
TreeMap 实现了Cloneable接口,意味着它能被克隆。
TreeMap 实现了java.io.Serializable接口,意味着它支持序列化。
private final Comparator super K> comparator; 自定义针对key的比较器
private transient Entry
static final class Entry implements Map.Entry {
K key; 对应的key
V value; 对应存储的value
Entry
Entry
boolean color = BLACK; 颜色值
Entry
- private static final boolean RED = false;
- private static final boolean BLACK = true;
-
- private transient int size = 0;节点个数
- private transient int modCount = 0;修改次数
- public TreeMap() {
- comparator = null;
- }
- public TreeMap(Comparator super K> comparator) {
- this.comparator = comparator; 可以在创建TreeMap对象时指定所使用的key比较器
- }