有序哈希表
有序依靠key比较机制
底层是一个比较器和树的根节点
1 | public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializable |
SortedMap
是有序接口
接口要求内含比较器,key有序存在最大最小,可根据key范围返回子视图,
1 | public interface SortedMap<K,V> extends Map<K,V> { |
NavigableMap
是SortedMap
的子接口,更加丰富了功能
1 | public interface NavigableMap<K,V> extends SortedMap<K,V> { |
比较器并不是必须的,可以无参构造
如果不提供比较器,那么key本身必须是可比较的,否则强转会报错
1 | public TreeMap() { |
树是红黑树实现,树节点除了引用左右子树外,还引用父节点,默认是黑色
1 | private static final boolean RED = false; |
插入操作
1 | public V put(K key, V value) { |
调整红黑树算法
1 | private void fixAfterInsertion(Entry<K,V> x) { |
一分也是爱~
版权声明
This site by Linest is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由Linest创作并维护的博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。