java set TreeSet详解

Posted yizhizhangblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java set TreeSet详解相关的知识,希望对你有一定的参考价值。

TreeSet 是sortedSet的唯一实现类,正如SortedSet名字暗示,TreeSet可以让集合元素处在排好序的状态。

与HashSet相比,TreeSet还额外提供了以下的方法(列出来,混个脸熟:)

SortedSet subSet(Object  fromElement,Object toElement) :返回这个Set的子集合,范围从fromElement(包含)到toElement(不包含)

SortedSet headSet(Object toElement):返回这个Set的子集合,范围小于toElement的子集合 

SortedSet tailSet(Object fromElement):返回这个Set的子集合,范围大于或等于fromElement的子集合 

Object first(): 返回这个Set第一个元素 

Object last():返回这个Set最后一个元素

Object lower(Object e):返回小于指定元素的集合里最大的那个元素 

Object higher(Object e):返回大于指定元素的集合里最小的那个元素     

【以上参考元素都不需要是集合里的

 总结一下,最后四个方法就是找到集合里的第一个,前一个,后一个,最后一个元素。同时前三个就是返回该集合的符合条件的子集合。

package Test01;

import java.util.TreeSet;

public class TestTreeSet {
     
  public static void main(String[] args) {
    TreeSet num =new TreeSet();
    num.add(2);
    num.add(-2);
    num.add(10);
    num.add(9);
    System.out.println(num);   //看出:不是按照添加的顺序来,是数字由小到大排序
    System.out.println(num.first());  //看出:数字由小到大排序的第一个
    System.out.println("9到12 之间的"+num.subSet(9, 12));
    System.out.println("比8小的"+num.headSet(8));
    System.out.println("比8大的"+num.tailSet(8));
}
}

 

与hashset采用hash算法决定元素的存储位置,TreeSet采用红黑树的数据结构(待跟进)来存储集合元素。那么他的排序规则是怎么的呢?

自然排序(默认情况)。

定制排序。

待续。。。。 

以上是关于java set TreeSet详解的主要内容,如果未能解决你的问题,请参考以下文章

Java集合详解7:HashSet,TreeSet与LinkedHashSet

Java集合详解7:HashSet,TreeSet与LinkedHashSet

Java集合Collection 体系集合详解(ArrayList,LinkedList,HashSet,TreeSet...)

Java集合框架 Set接口实现类--TreeSet概述及使用

Java集合框架 Set接口实现类--TreeSet补充: Comparator接口

java:Set对象TreeSet有序子类,HashSet无序子类,重复对象二