Java递归分类排序——通过重写Sort()中的Comparator实现自定义的复杂List或Map等的自定义排序规则

本文介绍了如何在Java中处理复杂的List<Map<String, Object>>排序问题,通过重写Sort方法中的Comparator,实现自定义的排序规则。示例展示了递归方法的应用,适用于多层级的分类排序。背景学习部分探讨了Arrays.sort和Collections.sort的区别,以及JDK7和JDK8在排序实现上的差异。" 133506807,19673742,Linux环境下C语言与MySQL数据库交互编程,"['Linux开发', 'C编程', '数据库交互', 'MySQL编程']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正文:

当我们在编程,特别是偏向底层或者涉及到排序或比较的功能的时候,就会经常遇到sort方法,它能满足一帮的排序或者简单的List<T>排序

但是当遇见复查的类型,例如List<Map<String,Object>>,像这种类型,如果想取其中的一个Key作为判断和排序的时候,我们就需要学会重写Sort()中的Comparato来实现我们的需求(这种方法能很快解决嵌套排序或者分层、树级的排序),示例如下:

//递归排序   
private static void ReWriteSort(List<Map<String, Object>> obj) {
        if (obj == null) return;//判空
        obj.sort(new Comparator<Map<String, Object>>() {
            @Override // 重写,从小到大排序
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                Long num1 = Long.parseLong(o1.get("序号").toString());
                Long num2 = Long.parseLong(o2.get("序号").toString());
                Long diff = num1 - num2;//通过两者的差来决定先后顺序
                if (diff < 0) {
                    return -1;
                } else if (diff > 0) {
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值