取最大值(0,x)时对流中的元素求和?

假设我有一个List<Double>[2,4.3,-1.1]。我想对这些元素求和,同时删除所有负数(我想取每个数字的最大值 vs 0)。对于这个例子,答案应该是 2 + 4.3 = 6.3


我想使用 Java 8 流来做到这一点,但我一直在降低最大 (x,0) 部分。有没有人有任何线索可以做到这一点?


这是我到目前为止:


scores.stream()

      .mapToDouble(i -> i.getValue())

      // max between the number and 0??

      .sum


莫回无
浏览 140回答 1
1回答

茅侃侃

.mapToDouble(i&nbsp;->&nbsp;Math.max(i,&nbsp;0))您也可以使用过滤器执行此操作:.filter(i&nbsp;->&nbsp;i&nbsp;>&nbsp;0)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java