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采用红黑树的数据结构(待跟进)来存储集合元素。那么他的排序规则是怎么的呢?

自然排序(默认情况)。

定制排序。

待续。。。。 

猜你喜欢

转载自www.cnblogs.com/yizhizhangBlog/p/9257892.html