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; }