2016-12-07 35 views
-1

是否有任何庫方法會檢查列表是否不爲空並且有一個非空的對象?檢查列表是否包含至少一個非空對象

是否有下面的代碼

if(!list.isEmpty() && list.get(0) != null){ 
    ... 
} 

請讓我知道,如果這一段代碼可以以任何方式加以改進任何更好的選擇。

+0

我不認爲你需要第二部分「&& list.get( 0)!= null',因爲這已由isEmpty()調用處理。此外list.get(0)可以爲null,而list.get(1)不爲null,因此它不會根據您的條件添加值。 – mba12

+0

@ mba12我只關心第一個對象不是null。 – codeMan

+1

如果是這種情況,您應該編輯您的問題以反映只有第一個對象不爲空的條件。 – mba12

回答

4

我想你可以用java 8

if (list.stream().anyMatch(e -> e != null)) {... } 
+5

或'anyMatch(Objects :: nonNull)' –

1

您的代碼不起作用嘗試。如果null元素是第二或第三個,會發生什麼?

一個簡單的方法是使用方法contains:如果此列表包含指定的元素,

返回true。更正式地說,當且僅當該列表包含至少一個元素e(例如(o == null?e == null:o.equals(e))時才返回true。

如果你需要檢查它是否存在只有一個NOT NULL元素這裏是你需要編寫代碼:

int countNull = 0; 
for (Object obj : list) { 
    if (obj == null) { 
     countNull++; 
    } 
} 
if (countNull == list.size() - 1) { 
    // Contains exactly one not null element 
} 
+0

我想檢查是否只有一個對象存在非空。 – codeMan

+0

不,OP想要檢查是否有至少一個_non_ null元素。 –

+0

@tobias_k我編輯了這個問題。看看 – codeMan

相關問題