判斷一個list集合是否為空,用isEmpty 還是 null的問題
在java開發中新手容易将判斷一個list集合是否為空,隻以If(list!=null)去判斷,且容易和isEmpty()混淆,但是,list集合為空還是為null,是有差別的。
先看一下下面的例子,你是否會認為輸出null呢?
造成這種結果其實是null判斷是判斷有沒有對list集合配置設定記憶體空間,而不是list裡面内容是否為空。
看一下isEmpty()
isEmpty() 和(list.size() == 0)都是判斷List内容是否為空
new一個user對象,判斷user的list内容是否為空,出現異常,這是因為, 使用isEmpty()和size()的前提是,list是一個空集合,而不是null,否則會抛異常。
所有我們在判斷集合不為空的時候常采用:**if(list!=null&&!list.isEmpty())**的方法去取list裡面的值
-
isEmpty() 用于判斷List内容是否為空,即list裡一個元素也沒有,
但是必須在 List getNewsList 本身不是空的引用的情況下才行。
即對象本身不能是空對象。
2.null一般判斷該List的引用也空的情況下
例如:
List list1 =null;
List list2=new ArrayList();
System.out.println(list2.isEmpty()); //true
System.out.println(list1.isEmpty()); //空指針異常
因為list2對象已經配置設定了空間,是以可以使用list2.isEmpty()來判斷使用有元素
如果用list2 !=null來判斷,隻能判斷list2是否配置設定了空間
例如上面的list1使用list1.isEmpty())就會報空指針異常
list2.isEmpty()就為true
如果将上面的判斷修改為
System.out.println(list2.isEmpty());
System.out.println(list1 == null);
兩者就都為true了
參考文檔 = https://blog.csdn.net/yinni11/article/details/79887842
參考文檔 = https://www.cnblogs.com/dang-/p/11228232.html