Java:List判空的条件:List=null 和 List.size = 0

news/2025/2/25 14:56:19

当需要对一个LIst进行判空操作时我们可使用如下两个语句:

if (list == null || list.size() == 0) {}

if (list != null && list.size() != 0) {}

可能会有人疑问如果满足  list == null  ,那么这个list不就为空了吗?为什么还要再使用另一个条件 list.size == 0 呢?

 

首先我们需要先弄懂这两个判断条件分别代表什么含义:

1.   list == null  :用于判断list有没有初始化,也就是list是否被赋为null,如 List list = null; ,满足该条件的话list中是没有数据的

2.  list.size == 0 :用于判断list中是否有数据,满足该条件时list中也是没有数据的

 

如果只使用 list == null :一旦list进行了初始化 List list2 = new ArrayList(); ,此时list就不再为null了,但list内并没有数据。如果只使用 list == null 来判断是否为空的话,就会判断错误。

如果只使用 list .size == 0 :如果list并没有进行初始化,使用该条件时会报空指针错误,就无法达到判空的目的。因此在使用该条件时,一定要判断list是否进行了初始化


 

 

总结:

在对List进行判空时,需要使用两个条件:先使用 list == null判断list是否初始化后,再使用 list .size == 0判断是否为空。

 

转载于:https://www.cnblogs.com/huiAlex/p/8594270.html


http://www.niftyadmin.cn/n/1998680.html

相关文章

能谈场恋爱好难

发信人: eshift (电的改变), 信区: Love标 题: 能谈场恋爱好难!发信站: BBS 水木清华站 (Wed Apr 25 20:17:07 2007), 站内 我们是好朋友,好朋友是不是一定不能有爱情?我知道她也在伤心,我不敢确定这份伤心是不是因为我?如果是&…

sharding源码解析之api分析

2019独角兽企业重金招聘Python工程师标准>>> 说在前面 本文转自“天河聊技术”微信公众号 昨天发出的上篇配置解析的文章,没有介绍sharding-jdbc提供的分片的api和与spring集成的配置文件,可能直接看配置源码解析不太直观,今天把这…

linux实验网络程序报告7,2014-2-26实验报告简单的Linux命令

1、命令的格式命令字 [选项] [参数]命令字表示完成相应操作的具体命令选项表示命令的要求参数表示命令的作用对象2、linux系统中关机操作#shutdown -h now#poweroff重启#shutdown -r now#reboot3、目录相关命令1)pwd查看当前所在的目录2)mkdir目录名(创建目录)3)ls查看当前目…

程序员创业成功必须遵守的几条铁律

程序员创业成功必须遵守的几条铁律 一、超速创业 老板法则一:要创业,就要做好亏钱或赢钱的准备; 想赚大钱,最快的方法就是自己当老板。 当老板当然有两种可能,一个是赚大钱,另外一个风险就是亏钱。我今天…

读《构建之法》

按照精读的读法,细致的读完了《构建之法》的第一、二、十六章。结合书本内容与自我理解,提出以下问题。 第一章 1.1软件程序软件工程 书中有这样一个例子:如果一架民用飞机上有需求,用户使用它的概率是百万分之一,你还…

Ubuntu 16.04 提权漏洞

Ubuntu 提权漏洞 下午闲来没事,朋友扔给我一个Ubuntu 提权exp 亲测可用,记录下 /* Ubuntu 16.04.4 kernel priv esc all credits to bleidl vnik*/// Tested on:// 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64// if differe…

程序员想创业首先要突破自己三关

当人们还在浩叹第一次网络泡沫破灭的时候,互联网已经悄悄迎来了它的第二个春天;从某种意义上看,甚至已经进入了夏天——热烈但不乏浮躁、兴奋但失之肤浅。某位投资人声称今年总共有三十亿美金资本进入中国,言下之意,大…

SpringMVC源码分析系列(精简)

springmvc源码分析 启动过程springMvc配置解析DispatcherServlet调用过程 HandleMappingHandleAdapter DispatcherServlet调用HandlerAdapter过程 SpringMVC源码分析系列: SpringMVC源码解析(1)-启动过程SpringMVC源码解析(2)-DispatcherServletSpringMVC源码解析(3)-HandleMap…