Java中TreeSet的基本操作
TreeSet有四种种构造函数可以初始化
在代码中主要列出了常用的三种:
构造方法摘要 | |
---|---|
TreeSet() 构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。 |
|
TreeSet(Collection<? extends E> c) 构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。 |
|
TreeSet(Comparator<? super E> comparator) 构造一个新的空 TreeSet,它根据指定比较器进行排序。 |
|
TreeSet(SortedSet<E> s) 构造一个与指定有序 set 具有相同映射关系和相同排序的新 TreeSet。 |
package test; import java.util.TreeSet; import java.util.Iterator; import java.util.ArrayList; import java.util.Arrays; //TreeSet是一个不包含重复值的升序集合 public class test7 { public static void main(String[] args) { //集合初始化方法1 System.out.println("集合初始化方法1"); TreeSet<Integer> set=new TreeSet<>(); System.out.println(set.add(1)); System.out.println(set.add(1)); set.add(3); set.add(10); set.add(2); Iterator <Integer>ite =set.iterator(); while(ite.hasNext()){ System.out.println(ite.next()); } //集合初始化方法1,另外一种构造方法 System.out.println("集合初始化方法2"); ArrayList <Integer> arr=new ArrayList<Integer>(Arrays.asList(new Integer[]{1,2,6,7,2,8})); TreeSet<Integer> set2=new TreeSet<>(arr); Iterator <Integer>ite1 =set2.iterator(); while(ite1.hasNext()){ System.out.println(ite1.next()); } System.out.println("输出第一个值"); System.out.println(set.first()); System.out.println("输出最后一个值"); System.out.println(set.last()); // 返回此 set 中严格大于给定元素的最小元素 System.out.println(set.higher(3)); // 返回此 set 中大于等于给定元素的最小元素; System.out.println(set.ceiling(3)); //// 返回此 set 中严格小于给定元素的最小元素; System.out.println(set.lower(3)); // 返回此 set 中小于等于给定元素的最小元素; System.out.println(set.floor(3)); // SortedSet<E> subSet(E fromElement, E toElement) 返回此 set 的部分视图,其元素从 fromElement(包括)到 toElement(不包括)。 TreeSet<Integer>subset=new TreeSet<>(set.subSet(0, 3));//输出前两个数 Iterator <Integer>it =subset.iterator(); while(it.hasNext()){ System.out.println(it.next()); } // SortedSet<E> headSet(E toElement) 返回此 set 的部分视图,其元素严格小于 toElement。 System.out.println("headSet"); TreeSet<Integer>headset=new TreeSet<>(set.headSet(3));//输出小于3的子集合 Iterator <Integer>it2 =headset.iterator(); while(it2.hasNext()){ System.out.println(it2.next()); } //SortedSet<E> tailSet(E fromElement) 返回此 set 的部分视图,其元素大于等于 fromElement。 System.out.println("tailSet"); System.out.println("TreeSet的第三种初始化方法"); TreeSet<Integer>tailset=new TreeSet<>(set.tailSet(3));//输出大于等于3的子集合 Iterator <Integer>it3 =tailset.iterator(); while(it3.hasNext()){ System.out.println(it3.next()); } // E pollFirst()获取并移除第一个(最低)元素;如果此 set 为空,则返回 null。pollLsat()移除最后一个数 System.out.println("pollfist"); System.out.println(set.pollFirst()); //size()集合大小 System.out.println("size()"); System.out.println(set.size()); // boolean contains(Object o) System.out.println("contains()"); System.out.println(set.contains(1)); //isEmpty() System.out.println("isEmpty()"); System.out.println(set.isEmpty()); //clear() System.out.println("clear()"); set.clear(); System.out.println("是否清空集合:"+set.isEmpty()); } }