1. 程式人生 > >java中的list為空(size==0)與list為null的區別

java中的list為空(size==0)與list為null的區別

轉自:大神的部落格

簡述

判斷一個list集合是否為空,我們的慣性思維是判斷list是否等於null即可,但是在Java中,list集合為空還是為null,這是兩碼事。

引用

舉個形象的例子,我有一個空著的水杯(list),而你沒有,那你是null,我的size為0。你想裝水就需要自己去買個水杯(new ArrayList();),但是我就可以直接裝水(list.add(水))。你要是沒有杯子直接倒水,水就流出去啦(空指標異常)。

判斷

那麼,我們什麼時候用null,什麼時候用isEmpty()或list.size()呢?

  • 空集合

isEmpty() 或者(list.size() == 0)用於判斷List內容是否為空,即表裡一個元素也沒有, 但是使用isEmpty()和size()的前提是,list是一個空集合,而不是null,所以為了避免異常,建議在使用或賦值list集合之前,做一次空集合建立處理,進行記憶體空間分配,即:

List list2 = new ArrayList()

list.isEmpty()和list.size()==0 沒有區別, isEmpty()判斷有沒有元素,而size()返回有幾個元素,如果判斷一個集合有無元素,建議用isEmpty()方法. 這清晰,簡明

  • null判斷 
    list等於null,可理解為沒有對list集合分配記憶體空間,實際上壓根就不存在。

建議

所以,兩者之間的區別,你懂了吧? 

建議在編碼時,採用:

if(list != null && !list.isEmpty()){
    這個裡面取list中的值
}else{
    做其他處理
}