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

标签 java java-8 java-stream

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

public class A {
   private boolean isAvailable;
}

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

我可以使用 Java8 流有效地完成此操作吗?

最佳答案

当然,这可以通过 Java Streams 实现:

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

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

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

但是如果您想这样做,您可以使用可选来包装列表:

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

关于java - 迭代列表查找 boolean 属性,返回默认 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55343465/

相关文章:

java - 检查第二个列表中是否缺少第一个列表的任何条目

java - 在ant脚本中设置环境变量

java - 使用 Java 发送电子邮件时出现 SSL 握手异常

java - oracle java 8 安装程序在 ubuntu 18.04 上通过 dockerfile 失败

java - ArrayList中合并对象的高效算法

java-8 - 使用身份组合器并行流减少

java - Spring Boot Amazon AWS S3 存储桶文件下载 - 访问被拒绝

java - 编译算法 NetBeans Java

java - 按字母顺序连接有关字段名称的对象值

Java 8 流 : Read file word by word