gpt4 book ai didi

java - 检测带有 Java Optional 的 Hashmap 是否有空值?

转载 作者:搜寻专家 更新时间:2023-11-01 02:00:34 24 4
gpt4 key购买 nike

我想知道 HashMap 的所有值是否为空。除了必须检查 map 中每个条目的值之外,最好的方法是什么?

HashMap<Long, Optional<Long>> aMap = new HashMap<>();

aMap.put(new Long(55), Optional.empty());
aMap.put(new Long(66), Optional.empty());
aMap.put(new Long(77), Optional.empty());
aMap.put(new Long(99), Optional.empty());

最佳答案

使用 java 8 流的 API。

使用 allMatch

boolean allEmpty = aMap.values()
.stream()
.allMatch(opt -> !opt.isPresent());

或使用 noneMatch

boolean allEmpty = aMap.values()
.stream()
.noneMatch(Optional::isPresent);

文档中需要注意的重要一点是,这两种方法都是“短路终端操作”

This is a short-circuiting terminal operation.

这意味着该方法不需要评估整个流,当它在 noneMatch 中找到第一个匹配项或在 allMatch 中找到第一个不匹配项时,它会立即返回。

关于java - 检测带有 Java Optional 的 Hashmap 是否有空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49226780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com