迭代列表查找boolean属性,返回默认false

时间:2019-03-25 17:30:17

标签: java java-8 java-stream

我有一个对象列表,每个对象都有一个布尔属性。例如,

public class A {
   private boolean isAvailable;
}

我想遍历此列表,获取列表中第一个元素的“ isavailable”值。如果列表为空或为空,那么我想返回false。

我可以使用Java8流有效地做到这一点吗?

1 个答案:

答案 0 :(得分:1)

Java流当然可以实现:

boolean result = list.stream().findFirst().map(A::isAvailable).orElse(false);

使用findFirst()方法获取列表的第一个值(如果存在)。 Map isAvailable,如果列表为空,则返回false

我强烈建议不要使用null作为列表值。请改用空列表。

但是,如果您愿意,可以使用Optional来包装列表:

boolean result = Optional.ofNullable(list)
        .flatMap(l -> l.stream().findFirst().map(A::isAvailable))
        .orElse(false);