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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沉湎码海 中级黑马   /  2017-2-14 21:55  /  600 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
        案例:TreeSet集合定制排序的实现
       
       
*/

import java.util.*;

class         M{
       
        int  age;
       
                //定义构造函数
        public  M(int  age){
               
                this.age=age;
               
        }
       
        public  String toString(){
               
                return "M对象(age:"+age+")";
        }
}



//定义一个测试类

public   class   TestTreeSet3{
       
        public  static  void main(String[] args){
               
               
                        //此处使用了匿名内部类对象
                TreeSet  ts =  new  TreeSet(new Comparator(){
                        public  int  compare(Object o1,Object o2){
                               
                                M  m1 =(M) o1;
                                M  m2 =(M) o2;
                                if(m1.age>m2.age){
                                        return -1;
                                       
                                }else if(m1.age==m2.age){
                                        return 0;
                                }else {
                                        return 1;
                                }
                               
                        }//关键是此处的compare()方法的返回值,返回给谁了?是怎么对待compare()方法的返回值的??
                       
                       
                });
               
                ts.add(new M(5));
                ts.add(new M(-3));
                ts.add(new M(9));
               
                System.out.println(ts);
               
        }
}

/*
        运行结果:
       
                       
C:\Users\sa\Desktop\集合\集合代码测试>javac  TestTreeSet3.java
注: TestTreeSet3.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

C:\Users\sa\Desktop\集合\集合代码测试>java  TestTreeSet3
[M对象(age:9), M对象(age:5), M对象(age:-3)]

C:\Users\sa\Desktop\集合\集合代码测试>


*/

0 个回复

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