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

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是否有值

猜你喜欢

转载自blog.csdn.net/yangshengwei230612/article/details/114663800