1.判断list是否为空

如果想判断list是否为空,可以这样判断:

//方法1
if (list != null && !list.isEmpty()) {
    //list不为空

} else {
    //list为空

}


//方法2
if (list == null || list.size() == 0) {
    //list为空

} else {
    //list不为空

}

list!=null:判断是否存在list,null表示这个list不指向任何的东西,如果这时候你调用它的方法,那么就会出现空指针异常。
list.isEmpty():判断list里是否有元素存在
list.size():判断list里有几个元素
所以判断list里有元素的最佳的方法是:
if(list != null && !list.isEmpty()){
        //list存在且里面有元素
}

2.原理分析

list!=null和list.size()>0的区别:

(1)list==null,意味着list压根没有地址,在堆内就不存在。

(2)list.size()==0 意思堆内有list但是还没来得及放元素,其长度随着元素数量变化而变化,暂时为零。

(3)list如果为null的话,说明没有进行初始化。这时list调用任何的方法都会抛出空异常。list.size()==0说明list已经被new过,但是里面没有值。

(4)区别:

①瓶子存在 list != null

②瓶子里没有水 list.isEmpty()

判断的时候一定要注意先后顺序。如果没有瓶子都没有,直接判断有没有水,是会报java.lang.NullPointerException的

③另外:

list.add(null)会造成list.isEmpty() 为 false, list.size() 为1,所以代码里要避免list.add(null)的陷阱。

原文链接:list非空判断_51CTO博客_判断list是否为空

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐