是否有任何庫方法會檢查列表是否不爲空並且有一個非空的對象?檢查列表是否包含至少一個非空對象
是否有下面的代碼
if(!list.isEmpty() && list.get(0) != null){
...
}
請讓我知道,如果這一段代碼可以以任何方式加以改進任何更好的選擇。
是否有任何庫方法會檢查列表是否不爲空並且有一個非空的對象?檢查列表是否包含至少一個非空對象
是否有下面的代碼
if(!list.isEmpty() && list.get(0) != null){
...
}
請讓我知道,如果這一段代碼可以以任何方式加以改進任何更好的選擇。
我想你可以用java 8
if (list.stream().anyMatch(e -> e != null)) {... }
或'anyMatch(Objects :: nonNull)' –
您的代碼不起作用嘗試。如果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
}
我不認爲你需要第二部分「&& list.get( 0)!= null',因爲這已由isEmpty()調用處理。此外list.get(0)可以爲null,而list.get(1)不爲null,因此它不會根據您的條件添加值。 – mba12
@ mba12我只關心第一個對象不是null。 – codeMan
如果是這種情況,您應該編輯您的問題以反映只有第一個對象不爲空的條件。 – mba12