本帖最后由 新手ing 于 2015-7-11 21:57 编辑
一。对象自身具备比较性(实现Comparable接口,重写compareTo方法)
class Person implements Comparable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
Person(String name ,int age){
this.name = name ;
this.age = age ;
}
public int compareTo(Object obj){
if(!(obj instanceof Person)){
throw new RuntimeException("不是Person对象");
}
Person p = (Person)obj;
if(this.age>p.getAge()){
return 1;
}else if(this.age ==p.getAge()){
return this.name.compareTo(p.getName());
}
return -1;
}
}
二。对象自身没有实现Comparable接口
//Person类定义
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
Person(String name ,int age){
this.name = name ;
this.age = age ;
}
}
*************************************************
TreeSet定义方式。
TreeSet hs = new TreeSet(new Comparator() {
public int compare(Object o1, Object o2){
Person p1 = (Person)o1;
Person p2 = (Person)o2;
int i = p1.getAge()-p2.getAge();
if(i==0){
i = p1.getName().compareTo(p2.getName());
}
return i;
}
});
|
|