gpt4 book ai didi

java - 使用 StreamEx 从 Stream 中删除空的 Optionals

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:05:59 27 4
gpt4 key购买 nike

我正在寻找一种使用 StreamEx 库仅流式传输非空 Optional 条目的优雅方式。或者标准库,如果可能的话。

目前我正在使用以下相当冗长的方法:

List<Optional<String>> list = 
Arrays.asList(Optional.of("A"), Optional.empty(), Optional.of("B"));

List<String> nonEmpty =
StreamEx.of(list).filter(Optional::isPresent).map(Optional::get).toList();

我基本上是在寻找类似 StreamEx 的 nonNull 的东西方法,但对于可选

最佳答案

嗯,这已经被添加了,但只在 java-9 中:

list.stream()
.flatMap(Optional::stream)
.collect(Collectors.toList());

Stuart Marks 有一个后向端口 here

关于java - 使用 StreamEx 从 Stream 中删除空的 Optionals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419273/

27 4 0