Java中的集合-TreeSet

一、TreeSet介绍
1、用于对元素排序的有序集合类,集合中的元素是自然排序的,也不能有重复的元素
2、通过实现Comparable接口来完成对元素的排序。该接口中定义了int compareTo(To o)方法

示例代码:

import java.util.TreeSet;
import java.util.Iterator;

public class TreeSetTest{

public static void main(String[] args){
TreeSet<String> ts = new TreeSet<String>();
ts.add("red");
ts.add("green");
ts.add("yellow");
ts.add("red");
System.out.println("size:"+ts.size());
Iterator it = ts.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println("first:"+ts.first());
System.out.println("last:"+ts.last());

System.out.println("subset:"+ts.subSet("green","yellow"));
[color=red]//System.out.println("subset2:"+ts.subSet("red","green"));[/color]
ts.remove("green");
System.out.println("removed size:"+ts.size());

ts.clear();
System.out.println("cleared size:"+ts.size());
}
}

执行结果:

size:3
green
red
yellow
first:green
last:yellow
subset:[green, red]
removed size:2
cleared size:0

如果将上面的注释部分放开,执行的时候会抛出IllegalArgumentException:
因为TreeSet是按自然顺序排序的,所以要保证fromKey < toKey。这里red>green,所以不可以。

[color=red][b]注意:subSet方法返回的元素从fromKey开始,到toKey的前一个元素结束(不包括toKey)[/b][/color]

size:3
green
red
yellow
first:green
last:yellow
subset:[green, red]
[color=red]Exception in thread "main" java.lang.IllegalArgumentException: fromKey > toKey[/color]
at java.util.TreeMap$NavigableSubMap.<init>(TreeMap.java:1240)
at java.util.TreeMap$AscendingSubMap.<init>(TreeMap.java:1677)
at java.util.TreeMap.subMap(TreeMap.java:862)
at java.util.TreeSet.subSet(TreeSet.java:308)
at java.util.TreeSet.subSet(TreeSet.java:344)
at TreeSetTest.main(TreeSetTest.java:21)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值