今天写代码,要查询一些数据,返回值为list,但是要判断list是否为空,于是我就用了 if(list == null),结果是不对的,因为即使返回的list为空,也是一个长度为0的数组,不是null,即用list长度是否为0来判断,即if(list.size == 0) ,或者用list.isEmpty()来判断
下面对list的null,Empty,和size进行详细解释一下
null 判断
在java中list为null 是意味着根本就没有给list集合分配空间,即
List list = null // 没有new ArrayList();,也就是没有分配空间
总之null在list集合中,就是判断是否给集合分配空间,说白了,如果为null,list集合就压根不存在,但只要是new过了,那就是有空间了就存在了,就不在是null了
empty判断*
而empty是判断list集合是否为空即
List list = new ArrayList(); 此时的list有分配空间不是null,因为是新创建的一个集合所以集合是空的,也就是empty。所以此时的size大小为0
size方法
然后size方法,是返回集合中元素的个数,如果集合为空则返回0,所以用size 判断list是否为空也是可以的。
下面代码代表着已经给给list分配空间(new过了),并且list不为空
if(list != null && !list.isEmpty()){ 这个里面取list中的值}
else{ 做其他处理}
总结:
null:集合有没有被new过,若没有则为null,若new过则非null
empty:集合被new过,若集合中没有元素则为empty
size:集合中元素的个数,若集合为null,则抛出异常
下面这篇文章写得不错
参考链接:https://www.cnblogs.com/linjiaxin/p/6104214.html