Java常用数据结构之TreeMap

来源:互联网 发布:拍拍贷 网络小贷拍照 编辑:程序博客网 时间:2024/06/06 00:40

TreeMap的继承结构图:
这里写图片描述

TreeMap底层的数据结构与存储结构

基于红黑树(Red-Black tree)的 NavigableMap 实现(是自平衡的二叉树)。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
TreeMap底层的实现的数据结构
这里写图片描述
TreeMap底层的存储结构
这里写图片描述
TreeMap里几个比较重要的成员

1.比较器   private final Comparator<? super K> comparator;2.存储节点    private transient Entry<K,V> root = null;3.该集合k-v的总数    private transient int size = 0;

TreeMap的特性

  • 是唯一的
Comparator<? super K> cpr = comparator;int cmp = cpr.compare(key, t.key) ||k.compareTo(t.key);//通过不同的比较策略比较两个元素的keyif(cmp==0) 表示相同不做处理
  • 是有序的
为实现有序有两种策略:1.自然排序 implements Comparable接口2.传入Comparator比较器 通过构造函数if(cpr!=null){  cmp = cpr.compare(key, t.key);}else{  Comparable<? super K> k = (Comparable<? super K>) key;  cmp = k.compareTo(t.key);}
原创粉丝点击