list集合为空或为null的区别

list集合为空或为null的区别简述判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null,这是两码事。引用举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你想装水就需要自己去买个水杯(new ArrayList();),但是我就可以直接装水(list.add(水))。你要是没有杯子直接倒水,水就流出…

大家好,又见面了,我是你们的朋友全栈君。

简述

判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null,这是两码事。

引用

举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你想装水就需要自己去买个水杯(new ArrayList();),但是我就可以直接装水(list.add(水))。你要是没有杯子直接倒水,水就流出去啦(空指针异常)。

判断

那么,我们什么时候用null,什么时候用isEmpty()或list.size()呢?

  • 空集合

      isEmpty() 或者(list.size() == 0)用于判断List内容是否为空,即表里一个元素也没有, 但是使用isEmpty()和size()的前提是,list是一个空集合,而不是null,所以为了避免异常,建议在使用或赋值list集合之前,做一次空集合创建处理,进行内存空间分配,即:

   List list2 = new ArrayList()

list.isEmpty()和list.size()==0 没有区别, isEmpty()判断有没有元素,而size()返回有几个元素,如果判断一个集合有无元素,建议用isEmpty()方法. 这清晰,简明

  • null判断 
    list等于null,可理解为没有对list集合分配内存空间,实际上压根就不存在。

建议

所以,两者之间的区别,你懂了吧? 
建议在编码时,采用: 

if(list != null && !list.isEmpty()){
    这个里面取list中的值
}else{
    做其他处理
}

1、如果想判断list是否为空,可以这么判断:

if(null == list || list.size() ==0 ){
  //为空的情况
}else{
  //不为空的情况
}

2、list.isEmpty() 和  list.size()==0  有啥区别呢

    答案:没有区别 。isEmpty()判断有没有元素,而size()返回有几个元素, 如果判断一个集合有无元素 建议用isEmpty()方法.比较符合逻辑用法。

3、list!=null  跟  ! list.isEmpty()有什么区别?

这就相当与,你要要到商店买东西
 list!=null         首先判断是否有商店
!list.isEmpty()     没有判断商店是否存在,而是判断商店是否有东西
总结用法:如果连商店都没有,何来的的东西可卖
所以一般的判断是
if(list!=null && !list.isEmpty()){
   //不为空的情况
}else{
   //为空的情况
}

 

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

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

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


相关推荐

  • java给链表赋值_Java链表操作代码[通俗易懂]

    java给链表赋值_Java链表操作代码[通俗易懂]/****/packagecom.cherish.SwordRefersToOffer;/***@authoracer**/publicclasstest_22链表中倒数第k个节点{/****/publictest_22链表中倒数第k个节点(){//TODO自动生成的构造函数存根}publicstaticclassListNode{privateintval;ListNode…

    2022年5月2日
    218
  • Handler类介绍(中文文档)

    Handler类介绍(中文文档)

    2022年3月3日
    32
  • vim复制粘贴_vim如何复制粘贴

    vim复制粘贴_vim如何复制粘贴一、打开文件        执行vimtest命令打开test文件        在命令模式下输入setnu,展示文本行号二、按字符复制与粘贴        在命令行模式下输入字符v(小写),便可以进入按字符选择模式,通过h、i、j、k键移动光标选择要进行复制的字符串。        完成选择后按下y键进行复制,将鼠标移动到最后一行,按下p执行粘贴操作就完成了对选择…

    2022年4月19日
    59
  • 几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍

    几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍富文本编辑器 富文本编辑器(RichTextEditor,RTE)是一种可内嵌于浏览器,所见即所得的文本编辑器。它提供类似于OfficeWord的编辑功能,方便那些不太懂HTML用户使用,富文本编辑器的应用非常广泛,它的历史与图文网页诞生的历史几乎一样长。 作为一个技术人员,手上备上两款富文本编辑器还是很有用的,指不定那个项目就要集成一个进去。到时候现找现用那可就费功夫了,毕竟从开…

    2022年6月10日
    365
  • SQL中的cast()函数「建议收藏」

    SQL中的cast()函数「建议收藏」CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。语法:CAST(expressionASdata_type)expression:任何有效的SQServer表达式。AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。data_type:目标系统所提供的

    2022年4月18日
    171
  • pycharm安装教程2020.3.4_pycharm安装后无解释器

    pycharm安装教程2020.3.4_pycharm安装后无解释器第一步安装解释器,第二步安装pycharm1第一步安装解释器1.1什么是解释器:??就是将Python程序翻译成为计算机可以识别的01代码1.2安装解释器:解释器安装地址:https://www.python.org/downloads/release/python-372根据自己的操作系统安装适配的解释器:这里以Windows为例注意安装的时候我们需要需注意吧解释器添加到环境变量里面双击开始安装勾选addpythontopath,如果安装的时候没有勾选,请安装结束以后按

    2022年8月26日
    4

发表回复

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

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