Wednesday, April 22, 2009

TreeSet

Set接口继承了Collection接口。
List容器中的对象允许重复,但Set中的对象都是唯一的
实现java.util.Set接口 & java.util.SortedSet接口
SortedSet提供相应的方法取出相应位置的对象
TreeSet是Java SE中唯一实现SortedSet接口的类,它使用红黑树结构来对加入的对象进行排列
例:
package 对象容器;
import java.util.*;
public class TreeSetDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Set set=new TreeSet();
set.add("justin");
set.add("caterpillar");
set.add("momor");

for(String name:set){
System.out.print(name+" ");
}
System.out.println();

}

}
运行结果:
caterpillar justin momor

TreeSet默认依字典顺序来排列String对象
自己定义排列方式:
1:定义一个实现java.util.Comparator的对象
2:实现接口中的compare()方法
3:compare()方法必须返回整数值
例:
package 对象容器;
import java.util.Comparator;
public class CustomComarator implements Comparator {
public int compare(T o1,T o2){
if(((T)o1).equals(o2))
return 0;
return ((Comparable) o1).compareTo((T) o2)*-1;//让排列顺序相反
}

}
测试类:
package 对象容器;
import java.util.*;
public class TreeSetDemo2 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Comparator comparator=new CustomComarator();
Set set=new TreeSet(comparator);
set.add("juatin");
set.add("caterpillar");
set.add("momor");

for(String name:set){
System.out.print(name+" ");
}
System.out.println();

}

}
运行结果:
momor juatin caterpillar

No comments:

Post a Comment