TreeSet (s.n set collection)
TreeSet
基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。
TreeSet :是由TreeMap维护的
底层:红黑树结构实现
优点:默认升序排序(默认自然排序||指定排序)
缺点:不如HashSet效率高
存储引用数据类型的时候(引用数据类型对象的排序,引用数据类型对象的去重):引用数据类型1)实现内部比较器 2)自定义外部比较器
重写的person 年龄比较 lambda表达式
TreeSet set=new TreeSet((Object o1, Object o2)->((Person)o1).getAge()-((Person)o2).getAge());
构造方法
TreeSet()
构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。
TreeSet(Collection<? extends E> c)
构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。
TreeSet(Comparator<? super E> comparator)
构造一个新的空 TreeSet,它根据指定比较器进行排序。
TreeSet(SortedSet s)
构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet。
方法
add(E e)
将指定的元素添加到此 set(如果该元素尚未存在于 set 中)。
addAll(Collection<? extends E> c)
将指定 collection 中的所有元素添加到此 set 中。
ceiling(E e)
返回此 set 中大于等于给定元素的最小元素;如果不存在这样的元素,则返回 null。
TreeSet<Integer> tr1 = new TreeSet<Integer>();
TreeSet<Integer> tr2 = new TreeSet<Integer>();
tr1.add(11);
tr1.add(22);
tr1.add(33);
tr1.add(44);
System.out.println(tr1.ceiling(22));// 2
System.out.println(tr2.ceiling(22));// null
clear()
移除此 set 中的所有元素。
clone()
返回 TreeSet 实例的浅表副本。
comparator()
返回对此 set 中的元素进行排序的比较器;如果此 set 使用其元素的自然顺序,则返回 null。
contains(Object o)
如果此 set 包含指定的元素,则返回 true。
descendingIterator()
返回在此 set 元素上按降序进行迭代的迭代器。
descendingSet()
返回此 set 中所包含元素的逆序视图。
first()
返回此 set 中当前第一个(最低)元素。
last()
返回此 set 中当前最后一个(最高)元素。
TreeSet<Integer> tr1 = new TreeSet<Integer>();
tr1.add(11);
tr1.add(22);
tr1.add(33);
tr1.add(44);
System.out.println(tr1.first());// 11
System.out.println(tr1.last());// 44
floor(E e)
返回此 set 中小于等于给定元素的最大元素;如果不存在这样的元素,则返回 null。
headSet(E toElement)
返回此 set 的部分视图,其元素严格小于 toElement。
headSet(E toElement, boolean inclusive)
返回此 set 的部分视图,其元素小于(或等于,如果 inclusive 为 true)toElement。
isEmpty()
如果此 set 不包含任何元素,则返回 true。
Iiterator()
返回在此 set 中的元素上按升序进行迭代的迭代器。
lower(E e)
返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。
pollFirst()
获取并移除第一个(最低)元素;如果此 set 为空,则返回 null。
pollLast()
获取并移除最后一个(最高)元素;如果此 set 为空,则返回 null。
remove(Object o)
将指定的元素从 set 中移除(如果该元素存在于此 set 中)。
size()
返回 set 中的元素数(set 的容量)。
subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
返回此 set 的部分视图,其元素范围从 fromElement 到 toElement。
subSet(E fromElement, E toElement)
返回此 set 的部分视图,其元素从 fromElement(包括)到 toElement(不包括)。
tailSet(E fromElement)
返回此 set 的部分视图,其元素大于等于 fromElement。
tailSet(E fromElement, boolean inclusive)
返回此 set 的部分视图,其元素大于(或等于,如果 inclusive 为 true)fromElement。
上一篇: angular防抖设计——点击事件
下一篇: 一次迭代式开发的研究:怎样进行迭代式开发
推荐阅读
-
java Collection 之Set使用说明
-
四种常见的数据结构、LinkedList、Set集合、Collection、Map总结
-
练习-Java集合类之Set的TreeSet之自定义排序规则
-
Set集合中的treeSet问题:cannot be cast to java.lang.Comparable;
-
荐 Java语言基础之Collection接口、List集合、Set集合的基本使用
-
Collection中的Set与list 的一些实际应用
-
Set集合下的子类HashSet、TreeSet
-
【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
-
对于Collection、List、Set、Map的区别
-
对于Collection、List、Set、Map的区别