有序的哈希表,允许被插入的元素按照自然顺序或者特殊指定的比较器的顺序进行排序,底层基于红黑树的数据结构实现,支持O(log n)时间复杂度进行get,put,remove等些操作
基本介绍
- 基于红黑树
NavigableMap接口的实现,map按照自然顺序排序或者按照在构建map时提供的比较器(Comparator)来进行排序 - 实现为
containsKey,get,put,remove操作提供log(n)算法复杂度的支持 - 注意,如果要正确实现
map接口,维护tree map的顺序,必须保证要跟equals一致。这是因为map接口是根据equals操作定义的,但是sorted tree使用的是compareTo 或者 compare用来比较所有的key. - 非同步的,可以使用
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));将其装饰为一个支持同步操作的有序集合 - 迭代器返回的所有方法(
collection view methods)都是fail-fast的,如果map内部结构在返回迭代器后发生变化,在使用该迭代器时将抛出ConcurrentModicationExcetion异常
常用方法
put
1 | public V put(K key, V value) { |
get
1 | public V get(Object key) { |
remove
1 | public V remove(Object key) { |
参考
jdk-11.0.2- 算法导论第13章