java中判断list是否为空

java中判断list是否为空1 判断 list 是否为空如果想判断 list 是否为空 可以这样判断 方法 1if list null amp amp list isEmpty list 不为空 else list 为空 方法 2if list null amp amp list size gt 0 list 不为空 else list 为空 方法 3if list null

1.判断list是否为空

如果想判断list是否为空,可以这样判断:

//方法1 if (list != null && !list.isEmpty()) { //list不为空 } else { //list为空 } //方法2 if (list != null && list.size() > 0) { //list不为空 } else { //list为空 } //方法3 if (list == null || list.size() == 0) { //list为空 } else { //list不为空 }

2.原理分析

list!=null和list.size()>0的区别:

(1)list==null,意味着list压根没有地址,在堆内就不存在。

(2)list.size()=0 意思堆内有list但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为零。

(3)list如果为null的话,说明没有进行初始化。这时list调用任何的方法都会抛出空异常。list.size()==0说明list已经被new过,但是里面没有值。

(4)区别:

①瓶子存在 list != null

②瓶子里没有水 list.isEmpty()

判断的时候一定要注意先后顺序。如果没有瓶子都没有,直接判断有没有水,是会报java.lang.NullPointerException的

③另外:

list.add(null)会造成list.isEmpty() 为 false, list.size() 为1,所以代码里要避免list.add(null)的陷阱。

④理解:

举个例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你如果想装水就需要买个水杯(new ArrayList();),而我却可以直接装水(list.add(水))。你要是没有杯子直接装水,水就流出去啦(空指针异常)。所以用做判断的时候经常连用 list!=null && list.size()>0 

3.双重判断原理

List list=new ArrayList();

①如果是以上这样的话,list不为null 但是size=0,这样集合对于之后的判断是没有意义的, 甚至是报异常,如list.get(0…n)这样取值判断,就会报异常。

②如果先判断size再判断null 如:if(list.size>0&&list !=null){};这种情况如果list 等于null 时,那么list.size会报空指针异常。

所以要双重判断这样写最好if(list !=null && list.size>0){}

原文链接:https://blog.51cto.com/u_/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209225.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午9:44
下一篇 2026年3月19日 上午9:45


相关推荐

  • 自然常数e的由来(简单通俗易于理解自然常数e)「建议收藏」

    自然常数e的由来(简单通俗易于理解自然常数e)「建议收藏」自然常数e的由来 (该文章用于自学和分享) 开篇先讲两个例子苏格拉底的麦穗柏拉图问苏格拉底,什么是爱情。苏格拉底说,这样吧,你去麦田里,不要回头,一直往前走,把你遇到的、最大的那棵麦穗摘下来、拿给我。后面的事,大家都知道了:柏拉图瞻前顾后,总觉得后面还有更好的,结果两手空空、一棵麦穗也没有得到。 除此之外,梅里尔·弗勒德(MerrillFlood)【提出过博弈论中…

    2025年7月21日
    5
  • Shell循环遍历日期「建议收藏」

    Shell循环遍历日期「建议收藏」Shell循环遍历日期区间#!/bin/bash#1获取命令输入参数的个数,如果个数为0,直接退出命令paramnum=$#if((paramnum==0));thenechonoparams;exit;fi#2获取跑的模块module=$1#3获取跑的日期区间startdate=`date-d”$2″+%Y-%m-%d`enddate=`date-d”$3″+%Y-%m-%d`#4遍历日期while[[$startdate<$enddat

    2022年7月24日
    46
  • python读取excel文件代码_python怎么加速读取excel

    python读取excel文件代码_python怎么加速读取excel1.excel文件只包含一个sheet表importxlrd”””读取包含耽搁sheet的excel数据”””workbook=xlrd.open_workbook(“test.xlsx”)#打开工作表sheet0=workbook.sheet_by_index(0)#获取工作簿nrows=sheet0.nrows#获取总行数foriinrange(nrows):each_data=sheet0.row_values(i)print

    2026年4月17日
    4
  • 初探小龙虾(安装OpenClaw和应用案例)

    初探小龙虾(安装OpenClaw和应用案例)

    2026年3月12日
    2
  • 2021年Spring面试题70道「建议收藏」

    2021年Spring面试题70道「建议收藏」文章目录2021年Spring面试题70道前言Spring面试题内容1.谈谈你对Spring的理解?2.Spring的特点是什么?3.Spring的优缺点是什么?4.Spring由哪些模块组成?5.详细讲解一下核心容器(springcontext应用上下文)模块6.解释AOP模块7.解释JDBC抽象和DAO模块8.解释对象/关系映射集成(ORM)模块9.解释WEB模块10.Spring配置文件11.什么是SpringIoC容器。12.控制反转(IoC)有什么作用13.控制反转

    2022年10月9日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号