当前位置: 首页 > article >正文

List 集合指定值升序降序排列Comparator实现

升序排序
升序排序通常是指从小到大的排序。对于数值类型来说,可以直接使用 compareTo 方法,而对于其他类型,可以根据实际需求实现比较逻辑。
示例代码

import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;

class Spgg2BO {
    private String spdm;
    private String ggdm;
    private String ggmc;
    private Integer ggwz;

    public Spgg2BO(String spdm, String ggdm, String ggmc, Integer ggwz) {
        this.spdm = spdm;
        this.ggdm = ggdm;
        this.ggmc = ggmc;
        this.ggwz = ggwz;
    }

    public Integer getGgwz() {
        return ggwz;
    }
}

public class Main {
    public static void main(String[] args) {
        List<Spgg2BO> spgg2List = new ArrayList<>();

        // 添加一些示例数据
        spgg2List.add(new Spgg2BO("001", "01", "规格一", 10));
        spgg2List.add(new Spgg2BO("002", "02", "规格二", 5));
        spgg2List.add(new Spgg2BO("003", "03", "规格三", 20));

        // 使用Comparator.comparing按ggwz升序排序
        spgg2List.sort(Comparator.comparing(Spgg2BO::getGgwz));

        // 输出排序后的结果
        for (Spgg2BO item : spgg2List) {
            System.out.println(item.getGgwz());
        }
    }
}

降序排序
降序排序是指从大到小的排序。对于数值类型,可以通过反转比较结果来实现降序排序。

示例代码

import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;

class Spgg2BO {
    private String spdm;
    private String ggdm;
    private String ggmc;
    private Integer ggwz;

    public Spgg2BO(String spdm, String ggdm, String ggmc, Integer ggwz) {
        this.spdm = spdm;
        this.ggdm = ggdm;
        this.ggmc = ggmc;
        this.ggwz = ggwz;
    }

    public Integer getGgwz() {
        return ggwz;
    }
}

public class Main {
    public static void main(String[] args) {
        List<Spgg2BO> spgg2List = new ArrayList<>();

        // 添加一些示例数据
        spgg2List.add(new Spgg2BO("001", "01", "规格一", 10));
        spgg2List.add(new Spgg2BO("002", "02", "规格二", 5));
        spgg2List.add(new Spgg2BO("003", "03", "规格三", 20));

        // 使用Comparator.comparing按ggwz降序排序
        spgg2List.sort(Comparator.comparing(Spgg2BO::getGgwz).reversed());

        // 输出排序后的结果
        for (Spgg2BO item : spgg2List) {
            System.out.println(item.getGgwz());
        }
    }
}

在上面的降序排序示例中,我们使用了 Comparator.comparing(Spgg2BO::getGgwz).reversed() 方法来创建一个比较器,该比较器首先基于 getGgwz 方法获取的 ggwz 值进行比较,然后通过 .reversed() 方法来反转比较结果,从而实现降序排序。

总结来说,升序排序是按照自然顺序从小到大排序,而降序排序是按照相反的顺序从大到小排序。你可以通过改变比较器的实现方式来实现不同的排序顺序。


http://www.kler.cn/a/291595.html

相关文章:

  • 笔记01----Transformer高效语义分割解码器模块DEPICT(即插即用)
  • PyTorch使用教程-深度学习框架
  • 第二十一周学习周报
  • 2024 同一个网段,反弹shell四种方法【linux版本】bash、python、nc、villian反弹shell图解步骤
  • 【Fargo】23:采集时间转rtp时间
  • 【项目开发】理解SSL延迟:为何HTTPS比HTTP慢?
  • JVM系列(八) -运行期的几种优化技术
  • TikTok养号一般养几天?账号起步方法
  • 0.3 学习Stm32经历过的磨难
  • 深度学习系列69:tts技术原理
  • 使用matplotlab绘制多条形图
  • 四、材料与制造工艺 笔记
  • 微深节能 环冷机卸灰小车定位远程控制系统 格雷母线
  • 2024国赛数学建模评价类算法解析,2024国赛数学建模C题思路模型代码解析
  • UE4_后期处理_后期处理材质及后期处理体积二
  • Unity(2022.3.41LTS) - UI详细介绍- Button(按钮)TMP
  • 中间件解析漏洞
  • 【STM32+HAL库】---- 驱动MAX30102心率血氧传感器
  • “论面向服务架构设计及其应用”写作框架,软考高级论文写作,系统架构设计师
  • JVM类的加载和类的加载器
  • ssm“最多跑一次”微信小程序论文源码调试讲解
  • Springboot logback.xml配置 JdbcTemplate 打印日志
  • vue3实现打飞机(雷电)
  • 机床采集网关在汽车智能工厂中的应用及成效-天拓四方
  • JS 设计模式之发布订阅模式
  • 算法训练营|图论第5天