1. 程式人生 > >返回值list是否為空的判斷

返回值list是否為空的判斷

今天寫程式碼,要查詢一些資料,返回值為list,但是要判斷list是否為空,於是我就用了 if(list == null),結果是不對的,因為即使返回的list為空,也是一個長度為0的陣列,不是null,即用list長度是否為0來判斷,即if(list.size == 0) ,或者用list.isEmpty()來判斷

下面對list的null,Empty,和size進行詳細解釋一下

null 判斷
在java中list為null 是意味著根本就沒有給list集合分配空間,即
List list = null // 沒有new ArrayList();,也就是沒有分配空間
總之null在list集合中,就是判斷是否給集合分配空間,說白了,如果為null,list集合就壓根不存在,但只要是new過了,那就是有空間了就存在了,就不在是null了

empty判斷*
而empty是判斷list集合是否為空即
List list = new ArrayList(); 此時的list有分配空間不是null,因為是新建立的一個集合所以集合是空的,也就是empty。所以此時的size大小為0

size方法
然後size方法,是返回集合中元素的個數,如果集合為空則返回0,所以用size 判斷list是否為空也是可以的。

下面程式碼代表著已經給給list分配空間(new過了),並且list不為空

if(list != null && !list.isEmpty()){ 這個裡面取list中的值}

else{ 做其他處理}

總結:
null:集合有沒有被new過,若沒有則為null,若new過則非null
empty:集合被new過,若集合中沒有元素則為empty
size:集合中元素的個數,若集合為null,則丟擲異常