Java判断List是否为空

Java判断List是否为空在Java中,我们常用List来存储数据,但是我们怎么判断它是否成功带来了我们需要的数据呢,以ArrayList为例,老规矩,先说结论,建议(list!=null&&!list.isEmpty);接下来是正文:20190723,这鬼天气又闷又热.远在1.99公里外的同事问了我一个问题,,一瞬间,我留下了激动的泪水.日日划水的我终于被发现了一丝价值.真是美好的一天啊….

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

在Java中,我们常用List来存储数据,但是我们怎么判断它是否成功带来了我们需要的数据呢,以ArrayList为例,

老规矩,先说结论,建议(list!=null&&!list.isEmpty());

接下来是正文:

20190723,这鬼天气又闷又热.远在1.99公里外的同事问了我一个问题,Java判断List是否为空,一瞬间,我留下了激动的泪水.日日划水的我终于被发现了一丝价值.真是美好的一天啊.

首先我们先看list==null

这意味着该list没有被初始化,在堆中没有地址,切记这个时候调用任何方法都会抛出NullPointerException.

这个情况常见于从数据库取值时.new不new都没关系,主要是后面那部分为null

Java判断List是否为空

Java判断List是否为空

其次,我们看list.isEmpty(),

这是list自带的一个方法,我们查看源码,得知ArrayList的isEmpty()是这么一回事:

Java判断List是否为空

isEmpty()里比较的是list.size()==0,list.size()的值会根据list中元素数量的变化而变化,前面我们说过,如果这个list没被初始化,那调用所有的方法都会空指针,很明显,这个被初始化过了.==0说明这里面没有元素.

所以,我们既要判断这个list==null也要判断list.isEmpty().

最后,我们还探讨了一个例外,就是

ArrayList AList = new ArrayList<>();

Jetbrains全家桶1年46,售后保障稳定

AList .add(null);

这个时候,(list!=null&&!list.isEmpty)就不适用了,因为size()为1,而isEmpty为false,有图有真相;Java判断List是否为空

但是,我们本着不负责任的精神一致决定等以后出现这个问题时,再单独加一个lsit.get(0)==null进行判断,如果大家对我上述内容有异议或者对最后的问题有好的解决方法或者对我有什么吐槽,欢迎私信或者留言.

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 代码生成器修改备注名_王者荣耀名字代码生成器

    代码生成器修改备注名_王者荣耀名字代码生成器1.model层生成时主键的字段是int32?2.Pcip_Msg中的IsAllClinics本是tinyintnotnull,但转成后是Byte?应该去?才对的.3.应能适应网络及本地中的有错数据库

    2022年7月28日
    3
  • 文本域[通俗易懂]

    文本域[通俗易懂]<textarea>元素用来创建多行文本框。与其他input元素不同,<textarea>元素并非空元素,因此它包含起始标签和结束标签。

    2022年8月5日
    9
  • java面向对象三大特征及五大原则

    java面向对象三大特征及五大原则java面向对象一、java面向对象的三大特征1、封装(Encapsulation)封转是指属性私有化根据需要提供setter和getter方法来访问属性隐藏具体属性和实现细节,仅对外开放接口控制程序中属性的访问级别目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员2、继承(Extend)继承是指将…

    2022年7月25日
    6
  • 详解P2P技术

    详解P2P技术P2P=PeertoPeer现在P2P也有很多不同架构,以下是常见的一些P2P架构纯P2P架构没有总是在线的服务器任意端系统之间直接通信对等方之间可以间断连接并可以改变IP地址例子:文件分发流媒体VoIP复杂应用纯P2P无法实现P2P:集中式目录Napster公司首先设计,由中央集中服务器管理当对等方启动时,它通知目录服务器以下信息IP地址可供共享的对象名称Alice查询文件“HeyJude”3)Al.

    2022年6月19日
    43
  • wing是什么_最短路径floyd算法例题

    wing是什么_最短路径floyd算法例题给定一个由 n 行数字组成的数字梯形如下图所示。梯形的第一行有 m 个数字。从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。规则 1:从梯形的顶至底的 m 条路径互不相交。规则 2:从梯形的顶至底的 m 条路径仅在数字结点处相交。规则 3:从梯形的顶至底的 m 条路径允许在数字结点相交或边相交。对于给定的数字梯形,分别按照规则 1,规则 2,和规则 3 计算出从梯形的顶至底的 m 条路径,使这 m 条路径经过的数字总和最大。输入格式第 1

    2022年8月9日
    6
  • 什么叫侧面指纹识别_正面背面侧面 你手机的指纹识别长在哪?

    什么叫侧面指纹识别_正面背面侧面 你手机的指纹识别长在哪?指纹识别已成为手机行业对热门技术之一,目前市面上常见的指纹识别模块搭载的位置主要有,正面、后背、侧面三种,比如说三星GalaxyS6、OPPOR9集成在正面Home键里,小米Note3、华为Mate8等装在了手机背部,LGV10植入到手机后边的电源键里,索尼XperiaZ5则放在手机侧面。正面背面侧面你手机的指纹识别长在哪?有人说指纹识别在正面最科学,但有些人则认为在背面更合理,此外…

    2022年6月23日
    64

发表回复

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

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