當需要對一個LIst進行判空操作時我們可使用如下兩個語句:
if (list == null || list.size() == 0) {} if (list != null && list.size() != 0) {}
可能會有人疑問如果滿足 list == null ,那么這個list不就為空了嗎?為什么還要再使用另一個條件 list.size == 0 呢?
首先我們需要先弄懂這兩個判斷條件分別代表什么含義:
1. list == null :用於判斷list有沒有初始化,也就是list是否被賦為null,如 List list = null; ,滿足該條件的話list中是沒有數據的
2. list.size == 0 :用於判斷list中是否有數據,滿足該條件時list中也是沒有數據的
如果只使用 list == null :一旦list進行了初始化 List list2 = new ArrayList(); ,此時list就不再為null了,但list內並沒有數據。如果只使用 list == null 來判斷是否為空的話,就會判斷錯誤。
如果只使用 list .size == 0 :如果list並沒有進行初始化,使用該條件時會報空指針錯誤,就無法達到判空的目的。因此在使用該條件時,一定要判斷list是否進行了初始化
總結:
在對List進行判空時,需要使用兩個條件:先使用 list == null判斷list是否初始化后,再使用 list .size == 0判斷是否為空。
參考鏈接:https://www.cnblogs.com/huiAlex/p/8594270.html