天天看點

使用isEmpty方法,null以及的差別,在list中,或者是String類型的時候

判斷一個list集合是否為空,用isEmpty 還是 null的問題

在java開發中新手容易将判斷一個list集合是否為空,隻以If(list!=null)去判斷,且容易和isEmpty()混淆,但是,list集合為空還是為null,是有差別的。

先看一下下面的例子,你是否會認為輸出null呢?

使用isEmpty方法,null以及的差別,在list中,或者是String類型的時候

造成這種結果其實是null判斷是判斷有沒有對list集合配置設定記憶體空間,而不是list裡面内容是否為空。

看一下isEmpty()

使用isEmpty方法,null以及的差別,在list中,或者是String類型的時候

isEmpty() 和(list.size() == 0)都是判斷List内容是否為空

new一個user對象,判斷user的list内容是否為空,出現異常,這是因為, 使用isEmpty()和size()的前提是,list是一個空集合,而不是null,否則會抛異常。

使用isEmpty方法,null以及的差別,在list中,或者是String類型的時候

所有我們在判斷集合不為空的時候常采用:**if(list!=null&&!list.isEmpty())**的方法去取list裡面的值

  1. 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