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?