news 2026/5/30 6:11:40

SpringBoot 内置 CollectionUtil:实战用法速览,告别空指针!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot 内置 CollectionUtil:实战用法速览,告别空指针!

📌 核心实用功能

CollectionUtil 是 SpringBoot 中超实用的集合工具类(spring-core 包自带),不用额外引入依赖,就能轻松搞定集合判空、转换、筛选等高频场景,今天就用🌰带你吃透这些实用功能!

判空:isEmpty/isNotEmpty(最常用)

转换:arrayToList(数组转集合)

合并:mergeArrayIntoCollection(集合 + 数组合并)

匹配:contains(元素存在判断)

兜底:emptyIfNull(避免 Null 返回)

📌 实战例子

1. 集合判空(最常用❗️)

痛点:手动写list == null || list.isEmpty()又繁琐又容易漏解决方案CollectionUtil.isEmpty()/CollectionUtil.isNotEmpty()

import org.springframework.util.CollectionUtils; import java.util.List; // 模拟业务场景:查询用户订单列表 List<String> orderIds = userService.getOrderIds(1001); // 判空:空集合/Null都返回true if (CollectionUtils.isEmpty(orderIds)) { System.out.println("❌ 暂无订单数据"); return; } // 非空才处理 if (CollectionUtils.isNotEmpty(orderIds)) { System.out.println("✅ 订单数:" + orderIds.size()); }

2. 数组转集合(快速转换💨)

痛点:数组转 List 还要手动 new ArrayList + 遍历,太麻烦解决方案CollectionUtils.arrayToList()

import org.springframework.util.CollectionUtils; // 模拟:接口返回数组格式的商品ID String[] goodsIds = {"1001", "1002", "1003"}; // 一行转成List List<String> goodsList = CollectionUtils.arrayToList(goodsIds); System.out.println("📦 转换后的集合:" + goodsList); // [1001, 1002, 1003]

3. 集合合并(拼接两个集合🧩)

痛点:合并两个 List 要循环 addAll,代码冗余解决方案CollectionUtils.mergeArrayIntoCollection()

import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; // 模拟:购物车合并(本地购物车 + 线上购物车) List<String> localCart = new ArrayList<>(); localCart.add("商品A"); localCart.add("商品B"); String[] onlineCart = {"商品C", "商品D"}; // 把数组合并到集合中 CollectionUtils.mergeArrayIntoCollection(onlineCart, localCart); System.out.println("🛒 合并后购物车:" + localCart); // [商品A, 商品B, 商品C, 商品D]

4. 判读集合是否包含指定元素(精准匹配🎯)

痛点:手动遍历判断元素是否存在,代码不优雅解决方案CollectionUtils.contains()

import org.springframework.util.CollectionUtils; import java.util.List; // 模拟:判断用户是否在白名单内 List<String> whiteList = List.of("admin", "test", "user1"); String currentUser = "admin"; if (CollectionUtils.contains(whiteList.iterator(), currentUser)) { System.out.println("✅ 用户在白名单,允许操作"); } else { System.out.println("❌ 无权限,请联系管理员"); }

5. 空集合兜底(避免返回 Null🚫)

痛点:方法返回 Null 集合,调用方容易空指针解决方案CollectionUtils.emptyIfNull()

import org.springframework.util.CollectionUtils; import java.util.List; // 模拟:查询用户收藏列表(可能返回Null) List<String> collectList = collectService.getCollects(1001); // 兜底:如果是Null,返回空集合(而非Null) List<String> safeList = CollectionUtils.emptyIfNull(collectList); // 放心遍历,不会空指针 safeList.forEach(collect -> System.out.println("⭐ 收藏内容:" + collect));
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 1:13:57

LDO设计原理详解:超详细版电源管理芯片分析

LDO设计原理详解&#xff1a;从零构建高性能电源管理芯片的认知体系你有没有遇到过这样的情况&#xff1f;系统里某个ADC的采样结果总是“飘”&#xff0c;噪声大得离谱&#xff0c;排查半天才发现是给它供电的LDO没选对&#xff1b;或者电池续航怎么都优化不上去&#xff0c;最…

作者头像 李华
网站建设 2026/5/30 5:28:27

将企业Wiki接入AI:通过anything-llm实现语义化查询

将企业Wiki接入AI&#xff1a;通过anything-llm实现语义化查询 在一家中型科技公司&#xff0c;新入职的开发工程师小李第一天上班就被安排对接一个核心API服务。他打开公司Confluence Wiki&#xff0c;搜索“鉴权流程”&#xff0c;跳出了27个标题含“auth”的页面——从设计…

作者头像 李华
网站建设 2026/5/24 23:44:01

基于Python+大数据+SSM基于深度学习的淘宝用户购物可视化与行为预测系统(源码+LW+调试文档+讲解等)/淘宝用户分析系统/购物行为预测系统/用户购物可视化系统/电商用户行为预测

博主介绍 &#x1f497;博主介绍&#xff1a;✌全栈领域优质创作者&#xff0c;专注于Java、小程序、Python技术领域和计算机毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华
网站建设 2026/5/28 17:01:55

如何用anything-llm实现文档智能检索与对话交互?

如何用 Anything-LLM 实现文档智能检索与对话交互&#xff1f; 在企业知识库动辄上千份PDF、Word和Excel文件的今天&#xff0c;如何快速找到“那份说过但记不清在哪”的关键信息&#xff1f;传统搜索依赖关键词匹配&#xff0c;面对模糊提问常常束手无策&#xff1b;而通用大模…

作者头像 李华
网站建设 2026/5/29 4:48:46

System76发布Pop!_OS 24.04 LTS版搭载全新Rust构建的桌面环境

经过长时间的开发&#xff0c;第一个完全基于Rust构建的桌面环境1.0版本终于发布&#xff0c;整体表现令人印象深刻。上周末&#xff0c;System76正式发布了其内部开发的Ubuntu衍生版本的长期支持版本&#xff0c;同时推出了完全用Rust重新实现的内部桌面环境COSMIC的"Epo…

作者头像 李华
网站建设 2026/5/26 13:45:41

Pr字幕样式如何统一修改?简单3步,新手也能一次改完

如果你搜索到这篇文章&#xff0c;大概率只有一个想法&#xff1a; 字幕太多了&#xff0c;不想一条一条改。 不管是改字体、颜色&#xff0c;还是统一位置&#xff0c;只要字幕数量一多&#xff0c;用 Pr 原生方式操作&#xff0c;都会变得又慢又容易出错。 下面这套方法&…

作者头像 李华