我有一串随机数,我需要返回一个偶数总和的可选项。
因此,我首先要过滤适当的值,然后检查它们是否存在。如果不是则返回Optional.empty,如果是,则汇总并返回带有值的Optional。
我看到sum(); findAny();计数();终端运营。 我应该如何处理它?</ p>
答案 0 :(得分:3)
使用reduce()
:
randomStream.filter(...).reduce(Integer::sum)
如果没有元素,这将返回一个空的可选项。
或者,如果所有值都是正数,则只需检查结果是否为0:
Optional.of(sum).filter(x -> x > 0)