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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c#通过oledb获取excel文件表结构信息

    这个问题来自论坛提问,同理可以获得access等数据库的表结构信息。推荐:http://www.cnblogs.com/roucheng/p/excelhanshu.html

    2021年12月27日
  • linux如何安装node_node 环境变量

    linux如何安装node_node 环境变量前言:linux中安装node环境步骤:第一步:官网下载node安装包,点我进入第二步:解压到个人的根目录下,也就是/home/haoxing(这是你自己的名字)/nodejs把文件夹名字改成nodejs方便使用第三步:配置环境变量1,打开终端入口2,输入命令:注意,带sudo是可编辑,不带的是只读sudovim/etc/profile3,输入你的密码4,shift+i打开编辑模式,加上以下代码,注意/home/…

    2022年9月13日
  • pycharm 自动换行_pycharm一行太长快捷换行

    pycharm 自动换行_pycharm一行太长快捷换行只对当前文件有效的操作是菜单栏->View->ActiveEditor->UseSoftWraps。要是想对所有文件都起到效果,就要在setting里面进行操作。Perferences-Editor-General->Usesoftwrapsinconsole。

    2022年8月25日
  • IntelliJ IDEA 创建Java项目[通俗易懂]

    IntelliJ IDEA 创建Java项目[通俗易懂]Java模块让你可以开发JavaSE和JavaEE应用程序。由Java模块提供的核心功能可通过加入各种技术和框架支持进行扩展。当您创建好一个项目后,您可以创建一个Java模块。您还可以添加一个Java模块到现有项目。注意:这里说的Java模块实际是一个Java项目,而IDEA的项目(Project)则相当于Eclipse的工作空间(workspace)的概念,相当于VS的解决方案(soluti

    2022年9月29日
  • Youtube最佳Red5 官方视频下载指南,字幕【亲测成功】

    Youtube最佳Red5 官方视频下载指南,字幕【亲测成功】

    2022年1月8日
  • 声源定位方法_声源定位算法

    声源定位方法_声源定位算法目录1.TDOA简介2.时延估计3.定位估计4.声源定位根据现有的研究成果来看,声源定位(SoundSourceLocalization,SSL)存在以下几种方法:基于最大输出功率的可控波束成形的定位方法、基于高分辨谱估计的定位方法和基于到达时延差(TimeDifferenceofArrival,TDOA)估计的定位方法,以及基于机器学习的方法。其中基于时延估计的定位方法计算量小,实时性好,实用性强等特点,我们就先介绍这种较为简单的声源定位算法。基于TDOA的方法一般

    2022年9月23日

发表回复

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

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