ITPub博客

首页 > IT职业 > IT职场 > Java集合详解(六):TreeMap原理解析

Java集合详解(六):TreeMap原理解析

IT职场 作者:uzhy 时间:2021-09-09 08:53:02 0 删除 编辑

概述

本文是基于jdk8_271版本进行分析的。

TreeMap是一个有序的key-value双列集合,底层基于红黑树实现。该映射根据其键的自然顺序进行排序,或者根据创建时提供的Comparator进行排序

数据结构

图片描述

  • 实现继承关系

1 public class TreeMap
2 extends AbstractMap
3 implements NavigableMap, Cloneable, java.io.Serializable

  1. AbstractMap:继承AbstractMap抽象类,使用实现的公共方法。
  2. NavigableMap:NavigableMap继承SortedMap接口,对SortedMap进一步扩展,它是一个可导航的键-值对集合。具有了为给定搜索目标报告最接近匹配项的导航方法。
  3. Cloneable:重写拷贝方法。
  4. Serializable:重写序列化方法。
  • 成员变量

1     // 比较器
2     private final Comparator super K> comparator; 3     // 根节点
4     private transient Entry root; 5     // 元素总数量
6     private transient int size = 0; 7     // 修改次数
8     private transient int modCount = 0;    
  • 构造函数
 1     public TreeMap() { 2         comparator = null;
 3     }
 4     public TreeMap(Comparator super K> comparator) { 5         this.comparator = comparator; 6     }
 7     public TreeMap(Map extends K, ? extends V> m) { 8         comparator = null;
 9 putAll(m); 10 } 11     public TreeMap(SortedMap m) { 12         comparator = m.comparator(); 13         try { 14             buildFromSorted(m.size(), m.entrySet().iterator(), null, null); 15         } catch (java.io.IOException cannotHappen) { 16         } catch (ClassNotFoundException cannotHappen) { 17 } 18     }

作者: Yanci丶
出处:https://www.cnblogs.com/Y2EX/p/14811286.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2551/viewspace-2797585/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    86
  • 访问量
    537