判斷的是list這個集合的問題,當前需要判斷list內值的問題。
簡述
判斷一個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()
1
list.isEmpty()和list.size()==0 沒有區別, isEmpty()判斷有沒有元素,而size()返回有幾個元素,如果判斷一個集合有無元素,建議用isEmpty()方法. 這清晰,簡明
null判斷
list等於null,可理解為沒有對list集合分配內存空間,實際上壓根就不存在。
建議
所以,兩者之間的區別,你懂了吧?
建議在編碼時,采用:
if(list != null && !list.isEmpty()){
這個里面取list中的值
}else{
做其他處理
}
---------------------
作者:光陰迷客
來源:CSDN
原文:https://blog.csdn.net/changqing5818/article/details/52373569
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
---------------------------------------------------------------------------
轉自https://www.cnblogs.com/yuanchaoyong/p/6247896.html
1、如果想判斷list是否為空,可以這么判斷:
if(null == list || list.size() ==0 ){
//為空的情況
}else{
//不為空的情況
}
2、list.isEmpty() 和 list.size()==0 有啥區別呢
答案:沒有區別 。isEmpty()判斷有沒有元素,而size()返回有幾個元素, 如果判斷一個集合有無元素 建議用isEmpty()方法.比較符合邏輯用法。
3、list!=null 跟 ! list.isEmpty()有什么區別?
這就相當與,你要要到商店買東西
list!=null 首先判斷是否有商店 !list.isEmpty() 沒有判斷商店是否存在,而是判斷商店是否有東西 總結用法:如果連商店都沒有,何來的的東西可賣 所以一般的判斷是 if(list!=null && !list.isEmpty()){ //不為空的情況 }else{ //為空的情況 }