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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘文飞 中级黑马   /  2012-11-21 18:47  /  1191 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘文飞 于 2012-11-21 21:30 编辑
  1. import java.util.*;
  2. class TreeSetDemo01
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 TreeSet ts = new TreeSet();
  7.                 ts.add(new Person("lili",20));
  8.                 ts.add(new Person("lili",21));
  9.                 ts.add(new Person("lili",22));
  10.                 ts.add(new Person("lili",23));
  11.                 System.out.println(ts);
  12.         }
  13. }
  14. class Person implements Comparable
  15. {
  16.         private String name;
  17.         private int age;
  18.         public Person(String name,int age)
  19.         {
  20.                 this.name = name;
  21.                 this.age = age;
  22.         }
  23.         public int compareTo(Object obj)
  24.         {
  25.                 // if(!(obj instanceof Person))
  26.                 // {
  27.                         // throw new RuntimeException("Not Person!!");
  28.                 // }
  29.                 // Person per = (Person)obj;
  30.                 // if(this.age>per.age)
  31.                 // {
  32.                         // return 1;
  33.                 // }
  34.                 // if(this.age==per.age)
  35.                 // {
  36.                         // return 0;
  37.                 // }
  38.                 // return -1;
  39.                 return 1;         //1示当前对象大于需要比较的对象,那么后面存入的应该都是放在二叉树的左侧的,
  40.                                //那么输出应该是与输入顺序相反的啊??
  41.         }
  42.         public String toString()
  43.         {
  44.                 return this.name + "---" + this.age;
  45.         }
  46. }
复制代码
/*Output:
G:\hezi\Code>java TreeSetDemo01
[lili---20, lili---21, lili---22, lili---23]


*/

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
张学永 发表于 2012-11-21 18:54
你搞反了。。。当前对象是后放入的元素,它会和集合里已经有的元素比较,所以是后进去的元素
调用compareTo ...

额,谢谢歌神了:handshake
回复 使用道具 举报
你搞反了。。。当前对象是后放入的元素,它会和集合里已经有的元素比较,所以是后进去的元素
调用compareTo()方法和集合里已经有的对象做比较,返回正数往右边放,返回负数往左边放。返回0就相同了。。。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马