当前位置: 首页 > news >正文

java中判断集合是否为空

0 写在前面

最近接触集合比较多,经常对于集合是否为空做判断,目前了解的有三种方法,所以记录一下。

分别为:

list.size()
list.isEmpty()
CollectionUtils.isEmpty(listName)

1 list.size()

这个方法是初学的时候用的比较多的,我们用伪代码复刻一下:集合名称.size()

		List<Object> listName = new ArrayList<>();
        
        //判断集合长度是否为空
        if (listName.size() == 0) {
            System.out.println("集合为空");
        }
        if (listName.size() > 0) {
            System.out.println("集合不为空");
        }
        System.out.println(listName.size() == 0);//true
        System.out.println(listName.size() > 0);//false

输出:

集合为空
true
false

2 list.isEmpty()

这个方法是集合集成到自身的方法,如果有空可以看一下List.java的源码

用伪代码举例:集合名称.isEmpty()

List<Object> listName = new ArrayList<>();

if (listName.isEmpty()) {
    System.out.println("集合为空");
}

System.out.println(listName.isEmpty());//true

输出:

集合为空
true

3 CollectionUtils.isEmpty()

这个使用到了spring的工具类,需要提前引入依赖

import org.springframework.util.CollectionUtils;

用伪代码举例:CollectionUtils.isEmpty(集合名称)

List<Object> listName = new ArrayList<>();

if (CollectionUtils.isEmpty(listName)) {
    System.out.println("集合为空");
}

System.out.println(CollectionUtils.isEmpty(listName));//true

输出:

集合为空
true

4 注意事项

①在使用list.isEmpty()时,如果集合=null。则会报空指针异常

举例:

List<Object> listName = new ArrayList<>();
listName=null;
if (listName.isEmpty()){
    System.out.println("集合为空");
}

在这里插入图片描述

最后总结:最好使用**CollectionUtils.isEmpty()**的方式去判断集合是否为空。

相关文章:

  • Vitepress搭建组件库文档(下)—— 组件 Demo
  • 计算多张图片的移位距离
  • 一起啃西瓜书(四)
  • 贪婪算法(Huffman编码)
  • 在Windows使用VSCode搭建嵌入式Linux开发环境
  • 嵌入式C语言编程中经验教训总结(七)指针、指针数组和数组指针
  • 表哥月薪22k+,而我还在混日子……
  • 【饭谈】在学习测开网课之前,你的心脏需要武装一下
  • Jetson Agx Xavier平台ov5693 glass-to-glass 延时测试
  • C++ 命名类型转换
  • 【定制项目】【M15 消防安全宣传】【横屏版】主要模块:视频 + 音频 + 图标 + 问答游戏
  • 在 Linux 中使用 tcp 转储命令来分析网络
  • 结合viewBinding实现RecyclerView组件的滚动列表显示
  • 【C++】STL——stack和queue(万字详解)
  • Kunyu安装使用教程(linux)
  • $translatePartialLoader加载失败及解决方式
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【前端学习】-粗谈选择器
  • 【刷算法】从上往下打印二叉树
  • Java Agent 学习笔记
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript服务器推送技术之 WebSocket
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • pdf文件如何在线转换为jpg图片
  • Selenium实战教程系列(二)---元素定位
  • Spring Boot快速入门(一):Hello Spring Boot
  • SQLServer之创建显式事务
  • ViewService——一种保证客户端与服务端同步的方法
  • 从重复到重用
  • 第十八天-企业应用架构模式-基本模式
  • 基于HAProxy的高性能缓存服务器nuster
  • 将 Measurements 和 Units 应用到物理学
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 试着探索高并发下的系统架构面貌
  • 系统认识JavaScript正则表达式
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (四)c52学习之旅-流水LED灯
  • (转)fock函数详解
  • ./configure、make、make install 命令
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET构架之我见
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [2023-年度总结]凡是过往,皆为序章
  • [bbk5179]第66集 第7章 - 数据库的维护 03