list stream sort Comparator.nullsLast 避免空指针的正确用法
📅 2026/7/14 13:16:29
👁️ 次浏览
list排序中经常是针对对象的某个字段排序但是字段为null是处理起来比较麻烦java中有针对此情况的api下面做详细介绍。代码案例TestpublicvoidtestListSort(){ListBookbookListnewArrayList();bookList.add(newBook(null,水浒传));bookList.add(newBook(9,钢铁怎样炼成的));bookList.add(newBook(null,百年孤独));bookList.add(newBook(3,三国演义));bookList.add(newBook(18,史记));System.out.println(bookList bookList);/* 整理升序price为null的排在最后 */ListBookbookList1bookList.stream().sorted(Comparator.comparing(Book::getPrice,Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList());System.out.println(整理升序price为null的排在最后:);System.out.println(bookList1 bookList1);/* 整体升序price为null的排在最前 */ListBookbookList2bookList.stream().sorted(Comparator.comparing(Book::getPrice,Comparator.nullsFirst(Comparator.naturalOrder()))).collect(Collectors.toList());System.out.println(整体升序price为null的排在最前:);System.out.println(bookList2 bookList2);/* 整体降序price为null的排在最后 */ListBookbookList3bookList.stream().sorted(Comparator.comparing(Book::getPrice,Comparator.nullsLast(Comparator.reverseOrder()))).collect(Collectors.toList());System.out.println(整体降序price为null的排在最后:);System.out.println(bookList3 bookList3);/* 整体降序price为null的排在最前 */ListBookbookList4bookList.stream().sorted(Comparator.comparing(Book::getPrice,Comparator.nullsFirst(Comparator.reverseOrder()))).collect(Collectors.toList());System.out.println(整体降序price为null的排在最前);System.out.println(bookList4 bookList4);}Book类NoArgsConstructorAllArgsConstructorDatapublicclassBook{privateIntegerprice;privateStringname;}运行结果bookList[Book(pricenull,name水浒传),Book(price9,name钢铁怎样炼成的),Book(pricenull,name百年孤独),Book(price3,name三国演义),Book(price18,name史记)]整理升序price为null的排在最后:bookList1[Book(price3,name三国演义),Book(price9,name钢铁怎样炼成的),Book(price18,name史记),Book(pricenull,name水浒传),Book(pricenull,name百年孤独)]整体升序price为null的排在最前:bookList2[Book(pricenull,name水浒传),Book(pricenull,name百年孤独),Book(price3,name三国演义),Book(price9,name钢铁怎样炼成的),Book(price18,name史记)]整体降序price为null的排在最后:bookList3[Book(price18,name史记),Book(price9,name钢铁怎样炼成的),Book(price3,name三国演义),Book(pricenull,name水浒传),Book(pricenull,name百年孤独)]整体降序price为null的排在最前 bookList4[Book(pricenull,name水浒传),Book(pricenull,name百年孤独),Book(price18,name史记),Book(price9,name钢铁怎样炼成的),Book(price3,name三国演义)]
1. glob是用于匹配符合指定模式的文件集合的语言
glob类似于正则表达式,最重要的功能就是搜索获取同一级或者各子级下符合条件的文件(绝对路径),非常适合写批处理的代码。
有时候我们需要对大量文件进行相同操作,在写…
📅 2026/7/14 13:16:29
前言
📌博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码&am…
📅 2026/7/14 13:15:28
B站视频自由下载:解锁4K高清内容的完整技术实现方案 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader
在数字内容日益丰富的…
📅 2026/7/14 13:15:28
暗黑破坏神2存档编辑器终极指南:5分钟学会角色定制与装备修改 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor
还在为暗黑破坏神2中反复刷装备而烦恼吗?想快速体验不同职业Build却不想从头练级?…
📅 2026/7/14 14:22:52
各位朋友,大家好。
在之前的专栏里,我们一同走过了分布式计算的诸多重要范式。今天,我想和大家聊一个近十年炙手可热、也饱受争议的话题——区块链与分布式账本。
或许您和我一样,作为一个在银行、保险、电信行业摸爬滚打了二三十年的IT老兵,对各种技术热潮早已见怪不怪…
📅 2026/7/14 14:22:52
GBFR-Logs:Granblue Fantasy Relink玩家必备的DPS统计神器,轻松提升战斗表现 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/g…
📅 2026/7/14 14:22:52
革命性终端体验:Kitty如何用GPU加速与智能分屏颠覆你的命令行工作流 【免费下载链接】kitty If you live in the terminal, kitty is made for you! Cross-platform, fast, feature-rich, GPU based. 项目地址: https://gitcode.com/GitHub_Trending/ki/kitty …
📅 2026/7/14 14:22:52
文章目录按位与(&)按位或(|)按位异或(^)按位取反(~)左移(<<)右移(>>)在C语言中,位操作符是直接对整数的二…
📅 2026/7/14 14:22:52
昨天半夜两点,我盯着手机屏幕发呆。不是刷短视频,也不是回消息,就是单纯地看着地图上的那个小蓝点。你知道那种感觉吗?就像你把自己扔进了一个巨大的、沉默的迷宫里,周围全是高楼大厦,灯光璀璨,但你却觉得冷飕飕的。这时候,脑子里突然蹦出个词:16252 geo。说实话,刚听…
📅 2026/7/14 14:22:12
从“创始人投影”到“真理映射”——大语言模型认知本质的哲学批判与范式重构
摘要
当前全球主流大语言模型(LLMs)在技术指标上持续突破,却在认知本质上陷入了一种根本性的“搞反”状态:它们本应成为人类超越自身认知局限的“传…
📅 2026/7/14 0:00:05
Hadoop 3.2.2 JDK 21 Windows开发环境全流程实战指南对于需要在Windows环境下进行大数据开发的Java/Scala开发者来说,搭建一个本地Hadoop开发环境是入门的第一步。本文将带你从零开始,完成Hadoop 3.2.2与JDK 21的环境搭建,并实现一个完整的M…
📅 2026/7/14 0:00:05
1. 项目概述:为什么你需要Boost库? 如果你用C写过一些项目,尤其是涉及到网络、并发、文件系统或者需要处理一些复杂数据结构时,大概率会听过或者用过Boost库。它不是C标准库的一部分,但它在C社区的地位,几…
📅 2026/7/14 0:00:05
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/14 6:35:02
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/14 12:06:52
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/14 7:15:18
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/13 3:29:47
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/13 19:47:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/13 9:07:16