java中的list為空(size==0)與list為null的區別
阿新 • • 發佈:2019-01-26
轉自:大神的部落格
簡述
判斷一個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{
做其他處理
}