/*
案例:TreeSet集合定制排序的实现
*/
import java.util.*;
class M{
int age;
//定义构造函数
public M(int age){
this.age=age;
}
public String toString(){
return "M对象(age:"+age+")";
}
}
//定义一个测试类
public class TestTreeSet3{
public static void main(String[] args){
//此处使用了匿名内部类对象
TreeSet ts = new TreeSet(new Comparator(){
public int compare(Object o1,Object o2){
M m1 =(M) o1;
M m2 =(M) o2;
if(m1.age>m2.age){
return -1;
}else if(m1.age==m2.age){
return 0;
}else {
return 1;
}
}//关键是此处的compare()方法的返回值,返回给谁了?是怎么对待compare()方法的返回值的??
});
ts.add(new M(5));
ts.add(new M(-3));
ts.add(new M(9));
System.out.println(ts);
}
}
/*
运行结果:
C:\Users\sa\Desktop\集合\集合代码测试>javac TestTreeSet3.java
注: TestTreeSet3.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
C:\Users\sa\Desktop\集合\集合代码测试>java TestTreeSet3
[M对象(age:9), M对象(age:5), M对象(age:-3)]
C:\Users\sa\Desktop\集合\集合代码测试>
*/
|
|