Java比较器

Java的运算符通常只对基本数据类型进行比较,而实际生活中往往需要对类对象进行比较,这时候就需要比较器来满足我们的需求。

举个栗子,比如下面红框复选框表示要对鼠标按照要求排序。(不是广告!不是广告!不是广告!)

 

Java比较器:(通过两个接口:Comparable 或 Comparator 来实现比较对象的大小)

(1)Comparable接口的使用:(自然排序)

 

(2)Comparator 接口的使用:(定制排序)

 1 //Comparator接口示例
 2 //一般的sort方法只能从低到高排序,这里用Comparator来实现从高到低排序
 3 public void test(){
 4     String[] str = new String[]{"aa","cc","kk","mm"};
 5     //在sort方法中传入 Comparator 接口实现类的匿名对象  
 6     Arrays.sort(arrr, new Comparator(){
 7           //重写接口抽象方法compare ,实现从高到低排序
 8           public int compare(Object o1, Object 02){
 9               if(01 instanceof String && o2 instanceof String){
10                   String s1 = (String) o1;
11                   String s2 = (String) o2;
12                   return -s1.compareTo(s2);
13               }
14               throw new RuntimeException("输入类型不一致");
15           }
16     })     
17 
18 }

(3)两种接口的比较:

  第一种通过自定义类实现Comparable接口,并重写该接口的compareTo()方法,指定我们想要的比较法则,比较的方式一旦确定,后续对该类对象调用sort进行排序时,就会自动使用重写后的compareTo()方法,可在任何位置使用; 

  而第二种Comparator接口属于临时性的比较,什么时候需要了就传入一个该接口的匿名实现类,重写compare()方法;

 

 

本文参考尚硅谷Java教程视频:https://www.bilibili.com/video/BV1Kb411W75N?

posted @ 2021-03-11 20:45  Only、  阅读(199)  评论(2)    收藏  举报