- package days8;
- import java.util.*;
- class Person implements Comparable
- {
- private String name;
- private int age;
- Person(String name,int age)
- {
- this.name=name;
- this.age=age;
- }
- public String getName()
- {
- return name;
- }
- public int getAge()
- {
- return age;
- }
- public int compareTo(Object obj) {
- if(!(obj instanceof Person))
- throw new RuntimeException("不是学生对象");
- Person s = (Person)obj;
- System.out.println(this.name+"....compareto....."+s.name);
- if(this.age>s.age)
- return 1;
- if(this.age==s.age)
- {
- return this.name.compareTo(s.name);
- }
- return -1;
- }
- }
- public class TreeSet2
- {
- public static void main(String[]args)
- {
- TreeSet al=new TreeSet();
- al.add(new Person("Ben",15));
- al.add(new Person("Ann",12));
- al.add(new Person("Bob",14));
- al.add(new Person("Sam",16));
- Iterator it=al.iterator();
- while(it.hasNext())
- {
- Object obj=it.next();
- Person p=(Person)obj;
- sop(p.getName()+"::"+p.getAge());
- }
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码 运行结果:
Ann....compareto.....Ben
Bob....compareto.....Ben
Bob....compareto.....Ann
Sam....compareto.....Bob
Sam....compareto.....Ben
Ann::12
Bob::14
Ben::15
Sam::16
求教这部分是怎么得来的,我看jdk手册看了半天,没看明白
Ann....compareto.....Ben
Bob....compareto.....Ben
Bob....compareto.....Ann
Sam....compareto.....Bob
Sam....compareto.....Ben
为什么是这样的比较???
|