【发布时间】:2015-06-07 19:21:46
【问题描述】:
假设我有以下数组:{1,2,3,4,6,7,8},它被放入 Stream<Integer> s = Stream.of(1,2,3,4,6,7,8);
如何在 Java lambda 表达式和 Stream 函数中使用来计算每个元素与下一个元素之间的差异(在本例中为 {1,1,1,2,1,1})?
这并不是真正的 reduce 操作,因为 reduce 将整个列表转换为 1 个元素;它也不是地图操作,因为它需要两个元素来计算差异,而不仅仅是一个。
【问题讨论】:
-
输入确实是一个数组,还是您已经得到一个
IntStream,您必须使用它?如果您将值作为数组获取,Ismail's answer 对我来说似乎是合理的。 -
对于好奇的人来说,这似乎不使用
reduce: stackoverflow.com/questions/46350402 是可行的
标签: java lambda java-8 java-stream