集合为NULL与集合长度为零的区别

原创 2016年08月30日 18:14:13

在工作中经常会见到类似这样的if条件:
List emps = new ArrayList();
if(emps!=null && emps.size()!=0){
//此处代码省略…
}
经测试,二者的确是不同的.如下代码:
(1)声明一个集合,但不赋值:

public class T3 {
    public static void main(String[] args) {
        List emps = new ArrayList();
        System.out.println("emps is null? " + (emps==null));
        System.out.println("emps的长度:"+emps.size());
        if(emps!=null && emps.size()==0){
            System.out.println("集合不为NUll,但是集合的长度却为零.");
        }
    }
}

打印结果:
这里写图片描述

(2)声明一个集合 t ,直接赋值为null

public class T3 {
    public static void main(String[] args) {
        List emps = new ArrayList();
        System.out.println("emps is null? " + (emps==null));
        System.out.println("emps的长度:"+emps.size());
        if(emps!=null && emps.size()==0){
            System.out.println("集合不为NUll,但是集合的长度却为零.");
        }
        List t = null;
        System.out.println("t is null? " + (t==null));
        System.out.println("t的长度:"+t.size());
    }
}

程序运行结果:
这里写图片描述
因为t为Null,是点不出size()方法的.

所以一般先判断对象是否为NULL,如果不是再去判断其长度是否为零,进一步的做逻辑判断.

版权声明:本文为博主原创文章,未经博主允许不得转载。

判断一个list集合是否为空,用isEmpty 还是 null的问题???

判断一个list集合是否为空,用isEmpty 还是 null的问题??? 举报|  分享| 2013-03-27 12:40sxc_1314 | 浏览 17563 次  悬赏:5 ...
  • evilcry2012
  • evilcry2012
  • 2016年04月13日 15:50
  • 7881

返回零长度的数组或者集合,而不是null

如果一个方法的返回值类型是集合或者数组 ,如果在方法内部需要返回的集合或者数组是零长度的,也就是没有实际对象在里面, 我们也应该放回一个零长度的数组或者集合,而不是返回null。如果返回了null,客...
  • tiantiandjava
  • tiantiandjava
  • 2015年07月20日 17:43
  • 3574

JSTL判断list的size()大小

http://java.sun.com/jsp/jstl/core"%>  http://java.sun.com/jsp/jstl/functions" prefix="fn"%>--------...
  • rambo_china
  • rambo_china
  • 2012年07月22日 07:56
  • 68869

c标签获取集合的长度

假设集合为集合shopCartInfoList 方法一: 0 }">    //获取集合shopCartInfoList的长度 方法二: 用EL表达式: 首先在页面引入标签 http://jav...
  • baicp3
  • baicp3
  • 2013年11月13日 18:48
  • 7065

java各常用集合类是否接受null值

特例说明:        TreeMap、TreeSet两个类在加入第二个元素时,会调用Comparator比较器比较先后加入的元素是否重复(TreeMap比较的是Key值)。所以当加入第一个元素时...
  • ml1990s
  • ml1990s
  • 2013年09月13日 16:15
  • 9094

Java集合中的Empty与null

一、问题描述 最近在做项目的过程中,需要做一个worker从队列中获取数据,然后将该数据从队列中弹出,当队列为空时,worker结束。按照思路写完代码后,测试时发现,当队列为空时,线程并没有退出。 ...
  • chenxiao_ji
  • chenxiao_ji
  • 2016年08月27日 15:00
  • 1110

集合中null和size==0的区别

相信对于不了解Java引用的初学者来说,有时会不明白集合中list==null和list.size()==0的区别。这里就以基于数组的arrayList进行讲解。 List list=new Arra...
  • zyq1013906061
  • zyq1013906061
  • 2017年07月10日 23:57
  • 178

hibernate使用list映射,查询出来的list集合包含多个null记录

hibernate hbm.xml里面使用list标签,查询结果集里面含null记录 主要问题:hibernate中集合映射list中的list-index中的问题: 参见一个配置文件: ...
  • u013634928
  • u013634928
  • 2015年11月07日 18:07
  • 1513

如何判断List是否为空,也就是list.isEmpty()和list.size() == 0 有何区别

如何判断List是否为空,也就是list.isEmpty()和list.size() == 0 有何区别? 就功能的实现来说,两者之间没有什么区别,都可以用来判断集合是否为空。 我们来看AP...
  • reggergdsg
  • reggergdsg
  • 2016年02月29日 13:35
  • 7149

关于null的说明以及和0的区别

关于null的说明以及和0的区别 一个变量(例如,表上的各个列其实本质就是一个个变量)的值为null(即数据(值)为空),表示该变量没有被赋予任何数值。换句话说,当一个变量的值为null时,表示该...
  • haiross
  • haiross
  • 2015年01月14日 09:47
  • 2056
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:集合为NULL与集合长度为零的区别
举报原因:
原因补充:

(最多只允许输入30个字)