TreeSet源码分析

Java集合框架

  • Set接口实现类:TreeSet
  • 特点
  • 底层结构
  • 应用
  • TreeSet重要的成员变量
  • 构造器
  • 总结

Set接口实现类:TreeSet

特点

  • 不允许重复,里面不允许有null
  • 可以实现对其中的元素排序
    1、自然排序
    2、定制排序

底层结构

底层维护了一个TreeMap,而TreeMap底层是红黑树【二叉树的一种】结构,可以实现对元素的排序。源码分析放在TreeMap中解析

应用

  • 方式一:自然排序
    要求:必须让添加元素的类型实现Comparable接口,实现里面的compareTo方法
  • 方式二:定制排序
    要求:创建TreeSet对象时,传入一个Compareor接口对象,并实现里面的compare方法

TreeSet重要的成员变量

TreeSet源码分析_第1张图片

  • 我们看到:和HashSet与HashMap的关系类似,TreeSet也维护着两个成员变量,但是,并没有找到TreeMap的身影,我们首先看一下NavigableMap接口,然后,下面我们通过构造器来寻找Tree的身影。。。
  • NavigableMap类
  • TreeSet源码分析_第2张图片
  • 我们发现,NavigableMap继承了SortedMap,这让我们不由的想到这个图:TreeSet源码分析_第3张图片
    下面我们看看TreeSet的构造器,寻找TreeMap的身影。

构造器

TreeSet源码分析_第4张图片
TreeSet源码分析_第5张图片

  • 看到以上的构造器,我们找到了TreeMap的身影。
  • 当然,TreeSet还有很多构造器,以及方法。其调用方法均在TreeMap中实现,所以,我们把源码分析放在TreeMap中分享。

总结

此篇描述了TreeSet的独有特点,以及底层结构和排序的应用。查看了其构造器即如何初始化一个TreeMap。

你可能感兴趣的:(Java集合(含源码分析))