Java对含有null的集合进行排序

1.原始comparator

java 复制代码
public static List<ReportVehicleVo> sortByBuildingPhaseAndFdeName(List<ReportVehicleVo> list){
        list.sort(new Comparator<ReportVehicleVo>() {
            @Override
            public int compare(ReportVehicleVo o1, ReportVehicleVo o2) {
                if (StringUtils.isBlank(o1.getVeBuildingPhase())){
                    return -1;
                }
                if (StringUtils.isBlank(o2.getVeBuildingPhase())){
                    return 1;
                }
                if (o1.getVeBuildingPhase().compareTo(o2.getVeBuildingPhase()) > 0){
                    return 1;
                }else if (o1.getVeBuildingPhase().compareTo(o2.getVeBuildingPhase()) < 0){
                    return -1;
                }else {
                    if (StringUtils.isBlank(o1.getFdeName())){
                        return -1;
                    }
                    if (StringUtils.isBlank(o2.getFdeName())){
                        return 1;
                    }
                    if (o1.getFdeName().compareTo(o2.getFdeName()) > 0){
                        return 1;
                    }else {
                        return -1;
                    }
                }
            }
        });
        return list;
    }

原始方法判空后再排序

2.优雅方式

java 复制代码
List<String> testingPlaceList = new ArrayList<>();
testingPlaceList.sort(Comparator.nullsFirst(Comparator.naturalOrder()));

下边一行代码执行完就排好序了,并且nullsFirst会把null值排到前边,如果你想排到后边就换成nullsLast,另外naturalOrder是正序,如果你想倒序就换成reverseOrder

相关推荐
深栈解码8 分钟前
JUC并发编程 synchronized与锁升级
java·后端
非ban必选19 分钟前
spring-ai-alibaba官方 Playground 示例
java·人工智能·spring
一粒沙白猫21 分钟前
Java综合练习04
java·开发语言·算法
凌辰揽月29 分钟前
8分钟讲完 Tomcat架构及工作原理
java·架构·tomcat
笑醉踏歌行35 分钟前
idea应用代码配色网站
java·ide·intellij-idea
一入JAVA毁终身37 分钟前
处理Lombok的一个小BUG
java·开发语言·bug
gjh12081 小时前
Easy-excel监听器中对批量上传的工单做错误收集
java·spring boot
红衣女妖仙1 小时前
JXLS 库导出复杂 Excel
java·excel·jxls·java 导出 excel
Hellyc1 小时前
JAVA八股文:异常有哪些种类,可以举几个例子吗?Throwable类有哪些常见方法?
java·开发语言
要开心吖ZSH1 小时前
《Spring 中上下文传递的那些事儿》Part 2:Web 请求上下文 —— RequestContextHolder 与异步处理
java·spring