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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李建强 于 2012-9-23 11:05 编辑
  1. import java.util.*;
  2. class TreeSetDemo
  3. {
  4. public static void main(String[] args)
  5. {
  6. TreeSet ts = new TreeSet();

  7. ts.add(new Student("张三",13));  
  8. ts.add(new Student("李四",14));
  9. ts.add(new Student("王五",15));
  10. ts.add(new Student("赵六",16));
  11. ts.add(new Student("赵小六",16));
  12. Iterator it = ts.iterator();
  13. while (it.hasNext())
  14. {
  15. Student stu = (Student)it.next();
  16. System.out.println(stu.getName()+"...."+stu.getAge());
  17. }
  18. }
  19. }

  20. class Student implements Comparable //该接口强制让学生具备比较性
  21. {
  22. private String name;
  23. private int age;

  24. Student(String name,int age)
  25. {
  26. this.name = name;
  27. this.age = age;
  28. }

  29. public int compareTo(Object obj)
  30. {
  31. if (!(obj instanceof Student))
  32. throw new RuntimeException("不是学生对象");
  33. Student s = (Student)obj;

  34. System.out.println(this.name+".....compareTo....."+s.name);

  35. if (this.age>s.age)
  36. {
  37. return 1;
  38. }
  39. if (this.age == s.age)
  40. {
  41. return this.name.compareTo(s.name);
  42. }
  43. return -1;
  44. }

  45. public String getName()
  46. {
  47. return name;
  48. }
  49. public int getAge()
  50. {
  51. return age;
  52. }
  53. public static void sop(Object obj)
  54. {
  55. System.out.println(obj);
  56. }
  57. }
复制代码
在往TreeSet中添加对象时,第一个对象会与自己比较。
比如,TreeSet中只有张三这个对象,还是会与张三比较。

但是在myEclipse中就不会出现自己与自己比较的现象?
难道是1.7和1.6的区别?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马