如何通过流返回可选的偶数值和?

时间:2018-04-04 23:21:02

标签: java java-stream

我有一串随机数,我需要返回一个偶数总和的可选项。

因此,我首先要过滤适当的值,然后检查它们是否存在。如果不是则返回Optional.empty,如果是,则汇总并返回带有值的Optional。

我看到sum(); findAny();计数();终端运营。 我应该如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:3)

使用reduce()

randomStream.filter(...).reduce(Integer::sum)

如果没有元素,这将返回一个空的可选项。

或者,如果所有值都是正数,则只需检查结果是否为0:

Optional.of(sum).filter(x -> x > 0)