TreeSet

public  class  Test1 {
     public  static  void  main(String[] args) {
         // --测式加入TreeSet并排序-------------
         Set<Student> set =  new  TreeSet<Student>();
         addTestData(set);
         printData(set);
         // --测式加入HashSet无序-------------
         set =  new  HashSet<Student>();
         addTestData(set);
         printData(set);
     }
     public  static  void  addTestData(Set set) {
         Student s1 =  new  Student( "d_name1" 30 );
         Student s2 =  new  Student( "a_name2" 20 );
         Student s3 =  new  Student( "c_name3" 26 );
         Student s4 =  new  Student( "b_name4" 24 );
         Student s5 =  new  Student( "c_name1" 30 );
         Student s6 =  new  Student( "c_name1" 30 );
         System.out.println(set.add(s1) ==  true  "加入"  "重复" );
         System.out.println(set.add(s2) ==  true  "加入"  "重复" );
         System.out.println(set.add(s3) ==  true  "加入"  "重复" );
         System.out.println(set.add(s4) ==  true  "加入"  "重复" );
         System.out.println(set.add(s5) ==  true  "加入"  "重复" );
         System.out.println(set.add(s6) ==  true  "加入"  "重复" );
     }
     public  static  void  printData(Set set) {
         for  (Iterator<Student> iterator = set.iterator(); iterator.hasNext();) {
             Student student = iterator.next();
             System.out.println(set.getClass().getName() +  " 姓名:"  + student.name
                     " 年龄:"  + student.age);
         }
     }
}
class  Student  implements  Comparable {
     int  age;
     String name;
 
     Student(String name,  int  age) {
         this .age = age;
         this .name = name;
     }
     public  boolean  equals(Object obj) {
         Student s = (Student) obj;
         return  (age == s.age && name.equals(s.name));
     }
     public  int  hashCode() {
         return  age * name.hashCode();
     }
     public  int  compareTo(Object obj) {
         Student stu = (Student) obj;
         //先按年龄排,后按姓名排
         int  num =  new  Integer( this .age).compareTo( new  Integer(stu.age));
         return  num ==  0  this .name.compareTo(stu.name) : num;
     }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值