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

升序排序

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

示例代码

javascript 复制代码
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());
        }
    }
}

降序排序

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

示例代码

javascript 复制代码
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() 方法来反转比较结果,从而实现降序排序。

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

相关推荐
团子的二进制世界6 分钟前
G1垃圾收集器是如何工作的?
java·jvm·算法
long31610 分钟前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
rannn_11137 分钟前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
灵感菇_39 分钟前
Java HashMap全面解析
java·开发语言
qq_124987075341 分钟前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
短剑重铸之日1 小时前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
若鱼19191 小时前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
觉醒大王1 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
努力学编程呀(๑•ี_เ•ี๑)1 小时前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
码农小卡拉2 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot