是否有任何方法可以检查List是否为空并且有一个非空的对象?
以下代码是否有更好的替代方案
if( !list.isEmpty() && list.get(0) != null){
...
}
如果能以任何方式改进这段代码,请告诉我。
答案 0 :(得分:6)
我猜你可以试试java 8
if (list.stream().anyMatch(e -> e != null)) {... }
答案 1 :(得分:2)
您的代码无效。如果null
元素是第二个或第三个,会发生什么?
一种简单的方法是使用方法contains
:
如果此列表包含指定的元素,则返回true。更正式地说,当且仅当此列表包含至少一个元素e时才返回true(o == null?e == null:o.equals(e))。
如果你需要检查它是否只存在一个NOT null元素,那么你需要编写代码:
int countNull = 0;
for (Object obj : list) {
if (obj == null) {
countNull++;
}
}
if (countNull == list.size() - 1) {
// Contains exactly one not null element
}