为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

概述

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

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

数据结构

图片描述

  • 实现继承关系

1 public class TreeMap<K,V>
2 extends AbstractMap<K,V>
3 implements NavigableMap<K,V>, 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<K,V> 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<K, ? extends V> 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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消