首页 > 编程语言 >JAVA自定义比较器(自定义规格)

JAVA自定义比较器(自定义规格)

时间:2022-11-03 17:13:14浏览次数:45  
标签:compare JAVA 自定义 return 规格 Integer o2 o1

事情是 政治面貌 1群众 2党员 3团员 。需求就是要把2在最前,之后是1 ,之后是3。对于以后再加入的类型都排在后面。

也就是说既不是按照升序 也不是按照降序 要根据2>1>3>4>5>.....这个规则来排序。

1.实现Comparable,相当于‘这个类要排序’了。 当然要实现compareTo方法。

2.通过内部类 new出来 然后写比较逻辑来实现。

list.stream().sorted(
                Comparator.comparing(实体类::字段1的get方法, Comparator.reverseOrder())
                        .thenComparing(实体类::字段2的get方法, new Comparator<Integer>() {
                            @Override
                            public int compare(Integer o1, Integer o2) {

                                return 0;
                            }
                        })
        ).collect(Collectors.toList());

此时在 compare方法里,就分为3种情况。

1 两个数都小于3 (2>1 倒叙)

2 两个数都大于3  (正序排列)

3 一个大于3一个小于3  (小于3的在前,其实也是正序排列)

所以对应的逻辑就是

                            @Override
                            public int compare(Integer o1, Integer o2) {
                                if (o1 < 3 && o2 < 3) {
                                    return o2 - o1;
                                } else {
                                    return o1 - o2;
                                }
                            }

完成。

 

标签:compare,JAVA,自定义,return,规格,Integer,o2,o1
From: https://www.cnblogs.com/Ozewaka/p/16854836.html

相关文章

  • Java实现ip属地功能开发教程 | ip2region2.x使用总结
    ip属地功能开发-ip2region2.x使用总结一、前言如今许多软件如B站、微博、抖音等都加上IP归属地防止恶意评论,境外用户显示的是国家,国内的用户显示的省份。兴致一起,我便......
  • linux java 初始环境配置
    linux初始环境配置 1.设置IP查看虚拟机ip地址:ipaddr 修改ip地址Vi/etc/sysconfig/network~scrips/ifcfg-ens33(不一定是33动态的)BOOTPROTO=static在......
  • Java单例模式,看这一篇就够了
    在创建型设计模式中,我们第一个学习的是单例模式(SingletonPattern),这是设计模式中最简单的模式之一。 单例是什么意思呢? 单例就是单实例的意思,即在系统全局,一个类只创......
  • Java获取小数点后几位
    学习中遇见保留1小数点后位,选择有四种方法:方法:1、用format方法,语法“String.format("%.2f",数值)”;2、用DecimalFormat的format方法;3、用setScale方法进行四舍五入;4、用set......
  • java时间类型转换方法
    java时间类型转换方法1.Calendar转LocalDateTime/***Calendar转LocalDateTime*@paramcalendar*@return*/publicstaticLoca......
  • Java String常用API总结
    Stringname;用于字符串拼接StringBuildersb=newStringBuilder();获取字符串长度name.length());指定字符在此字符串中第一次出现的索引name.indexOf('z'));nam......
  • 关于java.lang.IllegalArgumentException: Unknown URL content://com.example.databa
    在学习《Android第一行代码》第八章的ProviderTest项目的时候,运行之后点击“AddToBook”按钮,出现如下问题:java.lang.IllegalArgumentException:UnknownURLcontent://......
  • Java计算文件或文件夹大小
    代码:1/**2*路人甲操作文件的工具类3*returnSizi:计算文件大小4*/5classFilesUtil{67privatestaticlongcountSize;//用于储存文件大小......
  • Java函数式编程(1):Lambda表达式(1)
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~Java在其技术发展周期中经历过几次比较重要的变化,如果不是这几次比较重要的变化,恐怕不会有现在这样的江湖地位。个人看来,......
  • 从柯里化讲起,一网打尽 JavaScript 重要的高阶函数
    前情回顾我们在前篇​​《✨从历史讲起,JavaScript基因里写着函数式编程》​​讲到了JavaScript的函数式基因最早可追溯到1930年的lambda运算,这个时间比第一台计算......