TreeSet
- TreeSet 中的元素是有序的,
- 提供有 访问第一个元素, 最后一个元素, 前一个元素, 后一个元素, 截取子集等方法。
- 添加到TreeSet 中的元素, 必须是实现了 Comparable 接口的(第一个元素除外)
TreeSet 支持两种排序方法
- 自然排序 [默认]
- 定制排序
使用
TreeSetLearn.java
import java.util.TreeSet;
public class TreeSetLearn{
public static void main(String[] args){
TreeSet ts = new TreeSet<Integer>();
ts.add(9);
ts.add(7);
ts.add(0);
ts.add(5);
ts.add(-1);
//输出 TreeSet元素
System.out.println( ts );
//输出集合中的第一个元素
System.out.println( ts.first() );
//输出集合中的最后一个元素
System.out.println( ts.last() );
//输出小于5的字迹
System.out.println( ts.headSet(5) );
// 输出大于 等于 5的子集
System.out.println( ts.tailSet(5) );
}
}
输出
[-1, 0, 5, 7, 9]
-1
9
[-1, 0]
[5, 7, 9]
定制排序
- 定制排序必须在创建 TreeSet 时候 提供 Comparator 对象与 TreeSet 关联, 并且 由 Comparator 对象中的 compare 方法实现排序.
Compare1Learn.java
import java.util.Comparator;
import java.util.TreeSet;
public class Compare1Learn{
public static void main(String[] args){
TreeSet ts = new TreeSet( new Comparator() {
public int compare(Object o1, Object o2){
int v1 = (int)o1;
int v2 = (int)o2;
if(v1 > v2){
return -1;
}
else if( v1 == v2){
return 0;
}
else{
return 1;
}
}
});
ts.add(5);
ts.add(-4);
ts.add(9);
ts.add(0);
System.out.println( ts );
}
}
输出
[9, 5, 0, -4]
网友评论