TreeSet

基于TreeMap的NavigableSet的实现,使用元素的自然顺序(从小到大)对元素进行排序,此实现不是同步的。

TreeSet中的元素是不重复的

TreeSet set = new TreeSet<>();
		for(int i=0;i<10;i++) {
			set.add(i);
		}
		set.add(4);
//将指定的collection中的所有元素添加到set中
		TreeSet set2 = new TreeSet<>();
		set2.add(12);
		set.addAll(set2);
//返回set中的大于等于给定元素的最小元素,如果不存在就返回null
	      System.out.println(set.ceiling(12));
	    //返回set中的严格大于等于给定元素的最小元素,如果不存在就返回null
	      System.out.println(set.higher(12));
 //清除所有元素
	    set.clear();
//确定集合中是不是包含元素
	    System.out.println(set.contains(23));
 //返回在此set中的按照降序进行排序的迭代器
		Iterator it= set.descendingIterator();
//返回在此set中的按照自然顺序排序的迭代器
        Iterator it2 = set.iterator();
//获取并移除第一个(最低的元素),如果set为空就返回null
	    	System.out.println(set.pollFirst());
//获取并且移除最后一个(最高的元素)
	    	System.out.println(set.pollLast());
//返回这个set中的第一个元素
	    		System.out.println(set.first());
	    //返回这个set中的最后一个元素
	    		System.out.println(set.last());

 

 //返回这个set中所包含的元素的逆序视图,降序set受这个set的支持,因此对于这个set的更改将反映在降序set中,反之亦然,如果对任何一个set在进行迭代期间,同时修改了任何一个set,则迭代结果是不确定的
	    NavigableSet ser = set.descendingSet();
	    ser.remove(-1);
返回的逆序视图是跟原来的set有关联的,浅复制
  //返回这个set中所包含的元素的逆序视图,降序set受这个set的支持,因此对于这个set的更改将反映在降序set中,反之亦然,如果对任何一个set在进行迭代期间,同时修改了任何一个set,则迭代结果是不确定的
	    NavigableSet ser = set.descendingSet();
	    ser.remove(-1);
	    //返回此set的部分视图,其元素范围从fromElement 到 toElement,返回的set受此set的支持,所以在返回set中的更改将反映在此set中
	    SortedSet s = set.subSet(3,9);
	    //返回这个set的部分视图,其元素小于(或者等于 如果第二个参数为true) 返回的set受此set的支持,所以在返回set中的更改将反映在此set中
	    NavigableSet ss = set.headSet(8,true);
	    //返回这个set的部分视图,其元素大于(或者等于 如果第二个参数为true) 返回的set受此set的支持,所以在返回set中的更改将反映在此set中
	    NavigableSet sss = set.tailSet(5, true);

 

你可能感兴趣的:(JAVA基础)