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());
 }
}

  

 

posted @ 2019-04-24 10:46  樟樟22  阅读(1966)  评论(0编辑  收藏  举报