我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java中list集合为空或为null的区别是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java中list集合为空或为null的区别是什么

本篇内容介绍了“Java中list集合为空或为null的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    list集合为空或为null的区别

    javaWeb项目,调用第三方系统获取第三方数据库数据时 list 集合没有数据时 后台报空指针

    发现原因

    后台查询数据库总记录数为0(数据库确实无数据)时,我直接设置查询对象集合list置为null, 然后返给页面了,

    解决方法

    后台查询数据库总记录数为0(数据库确实无数据)时,将list 重新new一个,再返给页面,

    这样就后台控制台就不会报空指针啦

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

    这样判断我发现当集合为null的时候 , 虽然重新new啦一个集合 , 但是后台还是会报空指针

    之后我这样判断就好啦

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

    出现这个问题,是因为我对Java List集合是否为空还是为null的理解不够深刻。

    我记录如下要点

    1.判断一个list集合是否为空

    在Java中,list集合为空(集合中无元素),还是为null,这是两码事。

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

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

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

    3.list.isEmpty()和list.size()==0 没有区别

    isEmpty()判断有没有元素,而size()返回有几个元素,如果判断一个集合有无元素,建议用isEmpty()方法,看起来清晰明了。

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

    所以一般的判断是

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

    判断List集合为空或null

    判断List集合是否为空

    Java中,判断List集合是否为空与是否为null并不相同

    新建List对象,默认是为空,即没有数据,而不是null

    如:

    List<User> list = new ArrayList<User>();
    list1.size()==0和isEmpty()判断的是list1内的内容为空,而不是一个空集合,nullList list2 = null;这样声明的list2为null

    测试下list是否为空

    List<User> list1 = new ArrayList<User>();        if (list1 != null) {            System.out.println(list1.size() + "1");        }        if (list1.size() > 0) {            System.out.println("2");        }        if (null == list1) {            System.out.println("3");        }        if (list1.size() == 0) {            System.out.println("4");        }        if (list1 != null && list1.size() == 0) {            System.out.println("test  list==0");        }        if (list1 != null && list1.size() > 0) {            System.out.println("test list>0");        }        List<User> list2 = null;        System.out.println(list2 + "==>list2=null");

    输出得到:

    01

    4

    test list==0

    null==>list2=null

    可以得到list1.size()为0,可以理解为对list集合分配内存空间,但数据为空

    而list2为null,系统并没有weiqi为其分配空间

    网上有个例子,list1可以比喻成空的水杯,没有水,所以size为0

    而list2则没有水杯,空指针异常

    List集合判断2个条件

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

    判断null == list ,判断是否有这个容器水杯

    list.size() == 0,判断容器水杯内是否有水

    list.size()和list.isEmpty()判断含义一致

    “Java中list集合为空或为null的区别是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Java中list集合为空或为null的区别是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Java中list集合为空或为null的区别是什么

    本篇内容介绍了“Java中list集合为空或为null的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!list集合为空或为null
    2023-06-25

    java返回集合为null还是空集合及空集合的三种写法分别是什么

    本篇文章为大家展示了java返回集合为null还是空集合及空集合的三种写法分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。返回集合为null还是空集合及空集合的三种写法个人认为在自己写接口时
    2023-06-25

    为什么Java项目中别用!=null做判空

    本文主要介绍了为什么Java项目中别用!=null做判空,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-17

    java中集合的区别是什么?

    java中集合的区别是什么?在java中集合主要分为:List,Set,Map三种,其中List与Set是继承自Collection,而Map不是。List与Set的区别:List中的元素有存放顺序,并且可以存放重复元素,检索效率高,插入删除效率低,Set没有
    java中集合的区别是什么?
    2014-12-16

    sql中判断字段为null或空的方法是什么

    在SQL中,可以使用以下方法来判断字段是否为NULL或空:1. 使用IS NULL操作符来判断字段是否为NULL。例如:SELECT * FROM table_name WHERE column_name IS NULL;2. 使用IS N
    2023-10-08

    java判断集合是否为空的方法是什么

    在Java中,判断集合是否为空有几种方法可以使用:使用集合的isEmpty()方法:该方法返回一个boolean值,表示集合是否为空。例如:List list = new ArrayList();if(list.isE
    java判断集合是否为空的方法是什么
    2024-03-06

    java中集合和数组的区别是什么

    本篇文章为大家展示了java中集合和数组的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开
    2023-06-14

    java中数组和集合的区别是什么?

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。数组数组是java语言内置的数据类型,他是一个线性的序列,所有可以快速访问其他的元素,数组和其他语言不
    java中数组和集合的区别是什么?
    2020-10-03

    java中set和list的区别是什么?

    Java中的集合共包含三大类,它们分别是Set(集),List(列表)以及Map(映射)。它们都处在java.util中并且都为接口。它们各自都有各自的实现类。下面给大家介绍一下set和list的区别,希望对大家有所帮助。java中set和list的区别1、重
    java中set和list的区别是什么?
    2020-08-03

    Java中List与ArrayList的区别是什么

    Java中List和ArrayList都是集合类的接口,但是它们之间存在一些区别。1. 继承关系:List是一个接口,而ArrayList是List的一个实现类。2. 数据结构:ArrayList是基于数组实现的,而List是一种有序的集合
    2023-08-15

    java中vector与list的区别是什么?

    vector和list的区别 ● vector的随机访问效率高,但在插入和删除时(不包括尾部)需要挪动数据,不易操作。 ● List的访问要遍历整个链表,它的随机访问效率低。但对数据的插入和删除操作等都比较方便,改变指针的指向即可。 ● list是单向的,ve
    java中vector与list的区别是什么?
    2021-09-04

    java集合与数组的区别是什么?

    数组数组是java语言内置的数据类型,他是一个线性的序列,所有可以快速访问其他的元素,数组和其他语言不同,当你创建了一个数组时,他的容量是不变的,而且在生命周期也是不能改变的,还有JAVA数组会做边界检查,如果发现有越界现象,会报RuntimeExceptio
    java集合与数组的区别是什么?
    2020-05-15

    java 数组和集合的区别是什么

    java 数组和集合的区别:1、数组可以储存基本数据类型和对象,而集合中只能储存对象(可以以包装类形式存储基本数据类型)。2、数组的长度是固定的,集合长度是可以改变的。3、定义数组时必须指定数组元素类型,集合默认其中所有元素都是Object。4、无法直接获取数
    java 数组和集合的区别是什么
    2017-09-25

    java中怎么使用CollectionUtils工具类判断集合是否为空

    本篇内容介绍了“java中怎么使用CollectionUtils工具类判断集合是否为空”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用Co
    2023-06-29

    Java Rabbitmq中四种集群架构的区别是什么

    这篇文章给大家分享的是有关Java Rabbitmq中四种集群架构的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Rabbitmq 四种集群架构1. 主备模式 2. 远程模式3. 镜像模式 4. 多活
    2023-06-29

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录