List isEmpty()和size()==0 没有区别,isEmpty()方法也是判断size是否为0.
isEmpty先获取size的值在判断再返回,list.size则是直接返回属性size的值,相对isEmpty较快。看源码:
/**
* Tests if this list has no elements.
*
* @return <tt>true</tt> if this list has no elements;
* <tt>false</tt> otherwise.
*/
public boolean isEmpty() {
return size == 0;
}
null说明了没有进行初始化,此时要是调用任何的方法的话都会抛出空指针异常,而list.size()==0表示此list已经new过,但是其中没有存入任何值。
首先先了解一下list==null,它其实是根本没有在堆内是不存在的,没有存储的地址。但是list.size()=0是已经存在地址,但是并没有存相应的元素,当元素的数量增加是,size随之变化。
因此要先判断是否为null在判断list是否有值