TreeSet

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

TreeSet中的元素是不重复的

TreeSet<Integer> set = new TreeSet<>();
		for(int i=0;i<10;i++) {
			set.add(i);
		}
		set.add(4);
//将指定的collection中的所有元素添加到set中
		TreeSet<Integer> 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<Integer> it= set.descendingIterator();
//返回在此set中的按照自然顺序排序的迭代器
        Iterator<Integer> 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<Integer> ser = set.descendingSet();
	    ser.remove(-1);
返回的逆序视图是跟原来的set有关联的,浅复制
  //返回这个set中所包含的元素的逆序视图,降序set受这个set的支持,因此对于这个set的更改将反映在降序set中,反之亦然,如果对任何一个set在进行迭代期间,同时修改了任何一个set,则迭代结果是不确定的
	    NavigableSet<Integer> ser = set.descendingSet();
	    ser.remove(-1);
	    //返回此set的部分视图,其元素范围从fromElement 到 toElement,返回的set受此set的支持,所以在返回set中的更改将反映在此set中
	    SortedSet<Integer> s = set.subSet(3,9);
	    //返回这个set的部分视图,其元素小于(或者等于 如果第二个参数为true) 返回的set受此set的支持,所以在返回set中的更改将反映在此set中
	    NavigableSet<Integer> ss = set.headSet(8,true);
	    //返回这个set的部分视图,其元素大于(或者等于 如果第二个参数为true) 返回的set受此set的支持,所以在返回set中的更改将反映在此set中
	    NavigableSet<Integer> sss = set.tailSet(5, true);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值