在Java中如何正确的使用TreeSet

  介绍

这期内容当中小编将会给大家带来有关在Java中如何正确的使用TreeSet,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强> TreeSet简介

TreeSet是一个有序的集合,它的作用是提供有序集的组合。它继承于套抽象抽象类,实现了NavigableSet可克隆,io。可序列化的接口。
TreeSet继承于套抽象,所以它是一个集集合,具有设置的属性和方法。
TreeSet实现了NavigableSet接口,意味着它支持一系列的导航方法。比如查找与指定目标最匹配项。
TreeSet实现了可克隆接口,意味着它能被克隆。
TreeSet实现了io。可序列化的接口,意味着它支持序列化。
TreeSet是基于TreeMap实现的.TreeSet中的元素支持2种排序方式:自然排序或者根据创建TreeSet时提供的比较器进行排序。这取决于使用的构造方法。
TreeSet为基本操作(添加、删除和包含)提供受保证的log (n)时间开销。
另外,TreeSet是非同步的。它的迭代器方法返回的迭代器是快速失败的只

//默认构造函数。使用该构造函数,TreeSet中的元素按照自然排序进行排列。
  TreeSet ()//创建的TreeSet包含集合
  TreeSet (Collection<及# 63;E>延伸;收集)//指定TreeSet的比较器
  TreeSet (Comparator<及# 63;超级E>比较器)//创建的TreeSet包含集
  TreeSet (SortedSet集)

布尔加(E对象)   布尔addAll (Collection<及# 63;E>延伸;收集)   空白clear ()   对象克隆()   布尔包含对象(对象)   E第()   布尔isEmpty ()   去年(E)   E pollFirst ()   E pollLast ()   E低(E E)   E层(E E)   E上限(E E)   E更高(E E)   逻辑删除对象(对象)   int大小()   Comparator<及# 63;超级E>比较器()   Iterator迭代器()   IteratordescendingIterator ()   SortedSet耳机(E)   NavigableSetdescendingSet ()   NavigableSet耳机(E,布尔endInclusive)   SortedSet子集(E, E)   NavigableSet子集(E开始,布尔startInclusive, E,布尔endInclusive)   NavigableSettailSet (E开始,布尔startInclusive)   SortedSettailSet (E)

<强>说明:

(01) TreeSet是有序集的组合,因此支持添加、删除得到等方法。
(02)和NavigableSet一样,TreeSet的导航方法大致可以区分为两类,一类时提供元素项的导航方法,返回某个元素;另一类时提供集合的导航方法,返回某个集合。
低,地板,天花板和更高分别返回小于,小于等于,大于等于,大于给定元素的元素,如果不存在这样的元素,则返回零只

<强>第2部分TreeSet数据结构

java . lang . object   ,# 8627;java.util.AbstractCollection   ,# 8627;java.util.AbstractSet   ,# 8627;java.util.TreeSet      公开课TreeSet扩展AbstractSet   实现NavigableSet可克隆,io。可序列化的{}

TreeSet与收集关系如下图:

霸贘ava中如何正确的使用TreeSet

从图中可以看出:
(01) TreeSet继承于套抽象,并且实现了NavigableSet接口。
(02) TreeSet的本质是一个“有序的,并且没有重复元素“的集合,它是通过TreeMap实现的.TreeSet中含有一个“NavigableMap类型的成员变量“m,而m实际上是“TreeMap的实例“。

<强>第3部分TreeSet源码解析(基于JDK1.6.0_45)

为了更了解TreeSet的原理,下面对TreeSet源码代码作出分析。

包java.util;
  
  公开课TreeSet扩展AbstractSet
  可克隆,实现NavigableSetm;//TreeSet是通过TreeMap实现的,//现在是键-值对中的值。
  私有静态最终对象现在=新对象();//不带参数的构造函数。创建一个空的TreeMap
  公共TreeSet () {
  这(新的TreeMap ());
  }//将TreeMap赋值给“NavigableMap对象m"
  TreeSet (NavigableMap米){
  这一点。m=m;
  }//带比较器的构造函数。
  公共TreeSet (Comparator<及# 63;超级E>比较器){
  这(新的TreeMap(比较);
  }//创建TreeSet,并将集合c中的全部元素都添加到TreeSet中
  公共TreeSet (Collection<及# 63;E>延伸;c) {
  这();//将集合c中的元素全部添加到TreeSet中
  addAll (c);
  }//创建TreeSet,并将年代中的全部元素都添加到TreeSet中
  公共TreeSet (SortedSet

在Java中如何正确的使用TreeSet