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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

TreeSet集合的第二种排序方式


TreeSet的第二种排序方式:

当元素自身不具备比较性时,或者具备的比较性不是所需要的。
这时就需要让集合自身具备比较性。

定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。

当两种排序都存在时,以比较器为主。

定义一个类,实现Comparator接口,覆盖compare方法。





即: 相当于  在集合中放了一个刻度尺。让元素和刻度尺进行比较。


1.具备比较器的TreeSet集合
       
        在创建TreeSet集合的时候,为该集合指定一个比较器。
       
       
        TreeSet  ts = new   TreeSet(new MyCompare());//在创建TreeSet集合的时候,向集合中传入一个比较器。
       
        class  MyCompare implements  Comparator {
               
                public int Compare(Object o1,Object o2){
                       
                        Student s1=  (Student)o1;
                        Student s1=  (Student)o2;
                       
                        int  num= s1.getName().compareTo(s2.getName());
                       
                        //当主要条件相同时,比较次要条件
                       
                  if(num==0){
                          
                          if(s1.geAge()>s2.geAge)
                                  return 1;
                          if(s1.geAge()==s2.geAge)
                                  return 0;
                          return -1;
                  }
                }
        }
       

2.

/*
        关于Comparator接口的相关:
       
       
java.lang
接口 Comparable<T>


Comparable接口就只要一个方法那就是:int compareTo(T o)
                                                                                比较此对象与指定对象的顺序。

       

*/
       
       
        注意: Java中的大多数类都实现了 Comparator接口。
       
       
       
3.
        在日常开发中,我们经常用比较器进行排序。
       
       
4.
       
       

4 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
表示看不懂。。求解释。。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
我怕你会哭的 发表于 2017-2-13 12:19
表示看不懂。。求解释。。

带菜鸟小白飞
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马