有没有一种方法可以检查List不为空并且有一个非空对象?
以下代码是否有更好的替代方案?
if( !list.isEmpty() && list.get(0) != null){
...
}
请告诉我这段代码是否有改进的余地。
有没有一种方法可以检查List不为空并且有一个非空对象?
以下代码是否有更好的替代方案?
if( !list.isEmpty() && list.get(0) != null){
...
}
请告诉我这段代码是否有改进的余地。
if (list.stream().anyMatch(e -> e != null)) {... }
anyMatch(Objects::nonNull)
的意思是检查一个流中是否存在非空元素。 - tobias_knull
元素是第二个或第三个会发生什么?contains
方法:
如果你需要检查是否恰好存在一个非空元素,这里是你需要编写的代码:如果此列表包含指定的元素,则返回true。更正式地说,仅当此列表包含至少一个元素e(o==null ? e==null : o.equals(e))时才返回true。
int countNull = 0;
for (Object obj : list) {
if (obj == null) {
countNull++;
}
}
if (countNull == list.size() - 1) {
// Contains exactly one not null element
}