A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁岩 中级黑马   /  2012-8-24 10:24  /  1473 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package days8;

  2. import java.util.*;

  3. class Person implements Comparable
  4. {
  5. private String name;
  6. private int age;
  7. Person(String name,int age)
  8. {
  9. this.name=name;
  10. this.age=age;
  11. }

  12. public String getName()
  13. {
  14. return name;
  15. }

  16. public int getAge()
  17. {
  18. return age;
  19. }


  20. public int compareTo(Object obj) {


  21. if(!(obj instanceof Person))
  22. throw new RuntimeException("不是学生对象");
  23. Person s = (Person)obj;

  24. System.out.println(this.name+"....compareto....."+s.name);
  25. if(this.age>s.age)
  26. return 1;
  27. if(this.age==s.age)
  28. {
  29. return this.name.compareTo(s.name);
  30. }
  31. return -1;
  32. }



  33. }

  34. public class TreeSet2
  35. {
  36. public static void main(String[]args)
  37. {
  38. TreeSet al=new TreeSet();
  39. al.add(new Person("Ben",15));
  40. al.add(new Person("Ann",12));
  41. al.add(new Person("Bob",14));
  42. al.add(new Person("Sam",16));

  43. Iterator it=al.iterator();
  44. while(it.hasNext())
  45. {
  46. Object obj=it.next();
  47. Person p=(Person)obj;
  48. sop(p.getName()+"::"+p.getAge());
  49. }
  50. }

  51. public static void sop(Object obj)
  52. {
  53. System.out.println(obj);
  54. }
  55. }
复制代码
运行结果:
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

为什么是这样的比较???

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

1 个回复

倒序浏览
突然自己想明白了,二叉树原理呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马