SpringBoot 内置 CollectionUtil用法实战指南

 更新时间:2025年12月24日 09:31:48   作者:Moshow郑锴  
文章介绍了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));

到此这篇关于SpringBoot 内置 CollectionUtil用法实战指南的文章就介绍到这了,更多相关SpringBoot 内置 CollectionUtil用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatis修改int型数据无法修改成0的解决

    mybatis修改int型数据无法修改成0的解决

    这篇文章主要介绍了mybatis修改int型数据无法修改成0的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring中配置数据源的几种方式

    Spring中配置数据源的几种方式

    今天小编就为大家分享一篇关于Spring中配置数据源的几种方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java优先队列(PriorityQueue)重写compare操作

    Java优先队列(PriorityQueue)重写compare操作

    这篇文章主要介绍了Java优先队列(PriorityQueue)重写compare操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java桶排序之基数排序详解

    Java桶排序之基数排序详解

    这篇文章主要为大家介绍了Java桶排序之基数排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Spring Batch批量处理数据实现方式

    Spring Batch批量处理数据实现方式

    SpringBatch是一个用于创建高效、健壮批量数据处理应用的框架,支持事务管理、并发处理、重试机制、跳过机制等特性,它由Spring框架的一部分,包括Job、Step、ItemReader、ItemProcessor、ItemWriter等核心组件,在SpringBoot项目中集成SpringBatch
    2025-12-12
  • java序列化与ObjectOutputStream和ObjectInputStream的实例详解

    java序列化与ObjectOutputStream和ObjectInputStream的实例详解

    这篇文章主要介绍了java序列化与ObjectOutputStream和ObjectInputStream的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • spring之Bean的生命周期详解

    spring之Bean的生命周期详解

    本篇文章主要介绍了spring之Bean的生命周期详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Spring事务隔离级别简介及实例解析

    Spring事务隔离级别简介及实例解析

    这篇文章主要介绍了Spring事务隔离级别简介及实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • SpringMVC中Model与Session的区别说明

    SpringMVC中Model与Session的区别说明

    这篇文章主要介绍了SpringMVC中Model与Session的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 一个简单的java学生寝室查询系统

    一个简单的java学生寝室查询系统

    这篇文章主要为大家详细介绍了一个简单的java学生寝室查询系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10

最新评论