


class Person implements Comparable<Person>{
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Poson [name=" + name + ", age=" + age + "]";
}
public int compareTo(Person o) {
// TODO Auto-generated method stub
if(this.age>o.age){
return 1;
}else if(this.age<o.age){
return -1;
}
return 0;
}
}
public class TreeDemo {
public static void main(String[] args) {
Set <Person> set=new TreeSet<>();
set.add(new Person("张三", 58));
set.add(new Person("李四", 12));
set.add(new Person("晴儿", 45));
set.add(new Person("赵三", 86));
set.add(new Person("秦始皇", 15));
System.out.println(set);
}
}
class Person implements Comparable<Person>{
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Poson [name=" + name + ", age=" + age + "]";
}
public int compareTo(Person o) {
// TODO Auto-generated method stub
if(this.age>o.age){
return 1;
}else if(this.age<o.age){
return -1;
}
return 0;//两个对象为同一个对象
}
}
public class TreeDemo {
public static void main(String[] args) {
Set <Person> set=new TreeSet<>();
set.add(new Person("张三", 58));
set.add(new Person("李四物", 12));
set.add(new Person("晴", 45));
set.add(new Person("秦始皇2", 15));
System.out.println(set);
System.out.println("----------------------------------------------------");
Set <Person> set1=new TreeSet<>(new nameLengthComparable());
set1.add(new Person("张三", 58));
set1.add(new Person("李四物", 12));
set1.add(new Person("晴", 45));
set1.add(new Person("秦始皇2", 15));
System.out.println(set1);
}
}
//名字长度比较器
class nameLengthComparable implements Comparator<Person>{
@Override
public int compare(Person o1, Person o2) {
// TODO Auto-generated method stub
if(o1.name.length()>o2.name.length()){
return 1;
}else if(o1.name.length()<o2.name.length()){
return -1;
}
return 0;
}