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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. <div class="blockcode"><blockquote>
复制代码

汉字一比较 就乱了,是不是要重写person类中的hashcode函数啊?

评分

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

查看全部评分

1 个回复

倒序浏览
  1. package day15;

  2. import java.util.Iterator;
  3. import java.util.TreeSet;

  4. /**
  5. 需求:
  6. 往TreeSet集合中存储自定义对象学生。
  7. 想按照学生的年龄进行排序。


  8. 记住,排序时,当主要条件相同时,一定判断一下次要条件。
  9. * */
  10. public class TreeSetDemo {
  11.     public static void main(String[] args) {
  12.        
  13.         TreeSet ts= new TreeSet();
  14.         ts.add(new Preson("张三", 20));
  15.         ts.add(new Preson("李四", 20));
  16.         ts.add(new Preson("王五", 23));
  17.         ts.add(new Preson("赵六", 11));
  18.         ts.add(new Preson("周七", 19));
  19.         ts.add(new Preson("张三", 20));
  20.          Iterator it =ts.iterator();
  21.          while(it.hasNext())
  22.          {
  23.              Preson p=(Preson)it.next();
  24.              System.out.println("name:"+p.getName()+" ----age:"+p.getAge());
  25.          }
  26.        
  27.        
  28.        
  29.     }

  30. }
  31. class Preson implements Comparable
  32. {
  33.     private String name;
  34.     private int age;
  35.    
  36.     public String getName() {
  37.         return name;
  38.     }

  39.     public void setName(String name) {
  40.         this.name = name;
  41.     }

  42.     public int getAge() {
  43.         return age;
  44.     }

  45.     public void setAge(int age) {
  46.         this.age = age;
  47.     }

  48.     public Preson(String name, int age) {
  49.         super();
  50.         this.name = name;
  51.         this.age = age;
  52.     }

  53.     @Override
  54.     public int compareTo(Object o) {
  55.         if(!(o instanceof  Preson))
  56.             throw new RuntimeException("不是学生对象");
  57.         Preson p=(Preson)o;
  58. //        System.out.println(this.name +this.age+"----bijiaoqi  "+p.getName()+p.getAge());
  59. //        if(this.age>p.age) return 1;
  60. //        if(this.age==p.age)
  61. //            return this.name.compareTo(p.name);
  62. //        return -1;
  63.         int num = this.name.compareTo(p.name);
  64. //        System.out.println(num + this.name + this.age + "----bijiaoqi  "
  65. //                + p.getName() + p.getAge());

  66.         if (num == 0)
  67.             return this.age - p.age;
  68.         return num;       
  69.        
  70.        
  71.     }
  72.    
  73. }
复制代码

代码怎么没贴上去  郁闷!

评分

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

查看全部评分

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