1、简介
TreeMap使用红黑树存储元素,可以保证元素按key值的大小进行遍历。
2、继承体系
TreeMap继承自AbstractMap,并实现了 NavigableMap接口。NavigableMap 接口继承了SortedMap接口,SortedMap 最终继承自Map接口,同时 AbstractMap 类也实现了 Map 接口。
这里来简单说一下继承体系中不常见的接口NavigableMap和SortedMap:
NavigableMap是对SortedMap的增强,定义了一些返回离目标key最近的元素的方法。
SortedMap 接口,这个接口提供了一些基于有序键的操作。
3、红黑树
平衡二叉树(AVL)为了追求高度平衡,需要通过平衡处理使得左右子树的高度差必须小于等于1。高度平衡带来的好处是能够提供更高的搜索效率,其最坏的查找时间复杂度都是O(logN)。但是由于需要维持这份高度平衡,所付出的代价就是当对树种结点进行插入和删除时,需要经过多次旋转实现复衡。这导致AVL的插入和删除效率并不高。
红黑树具有五个特性:
1)每个结点要么是红的要么是黑的。
2)根结点是黑的。