对list!=null,list.size()>0, list.isEmpty的理解
List list = new ArrayList();
if(list != null && list.size()> 0 ){
//执行代码
}
大家看这段代码有没有什么问题。
我以前觉得没问题,但是我现在发现,这段代码在效率上有很大的问题。
首先,要明白这段代码的质量问题在哪里,先得知道 list!=null,list.size()>0, list.isEmpty()的区别
list != null
这是用来判断list这个对象有没有被实例化,但是List list = new ArrayList()
在这里list对象已经被实例化了,所以判断里没有对list != null
进行判断的必要;list.size()>0
这个是用来判断list里是不是有内容,所以咯,在执行list.size()>0之前要确保list已经被实例化。list.size()>0
这个方法会先计算一下list
里元素的个数,然后再和0进行比较list.isEmpty()
判断list
里是否有元素,list不需要计算元素个数,直接看一下是否为空,所以和list.size()
相比,进行非空判断时,这个效率更高
总结
·
list.size()
和list.idEmpty()
使用的前提是list已经被实例化,否则会报NullPointer异常- 如果只是做一个非空判断,用
list.isEmpty
比用list.size() != 0
效率要高
小白上路,欢迎指正