public int compareTo(Object o) {//这里传入的参数应该是Object,你原来是Person,这个是重写Comparable接口的方法,要重写就要和原方法一样,否则就不是覆写
Person p = (Person)o;//既然传入的是Object,使用的是子类Person这里就要向下转型,原因你懂得
if (this.age > p.age)
return 1;
if (this.age == p.age)
return 0;
else
return -1;
}
public boolean equals(Object obj) {
Person p = (Person) obj;
if (this.name.equals(p.name) && this.age == p.age)
return true;
else
return false;
}
}
public class smallT {
public static void main(String[] args) {
Set<Person> st = new TreeSet<Person>();
st.add(new Person("张三", 25));
st.add(new Person("李四", 26));
st.add(new Person("孙八", 27));
st.add(new Person("赵一", 21));
st.add(new Person("王二", 22));
st.add(new Person("刘三", 23));
System.out.println(st);
}
}