【发布时间】:2020-08-21 16:21:12
【问题描述】:
我有以下清单:
INPUT :: 4 5 8 -11 9 5 -7 4 6 -6 -8 -11 80 -32 -56 -15 5 -49
OUTPUT :: 4 9 17 6 15 20 13 17 23 17 9 -2 78 46 -10 -25 -20 -69
我需要计算累计和 - 列表含义
T(n) = T(n) + T(n-1) for n >0;
and
T(0) = T(0)
我想用 Java 流 API 来计算它,以便我可以用 Spark 实现它来进行大数据计算。我在 Java Streams 中很天真我尝试了几种表达方式,但它们都不起作用 等效的结构化代码应该是这样的:
int[] numbers = {4, 5, 8, -11, 9, 5, -7, 4, 6,-6, -8, -11, 80, -32, -56, -15, 5, -49};
int temp = 0;
for (int i = 0 ; i < numbers.length ; i++) {
temp = temp + numbers[i];
numbers[i] = temp;
}
【问题讨论】:
-
Stream API 在这里没有任何好处。
-
spark有什么关系?
-
@Lamanus 我可以将此解决方案与 Spark 中 JavaRDD 的一些数据类型更改一起使用
-
@Nikolas,我对 Stream API 完全陌生,你能帮我理解为什么 Stream 不能工作吗?如何以功能的方式实现这个逻辑?
-
@NilKulkarni Streams 将起作用。但是没有额外的好处,实际上增加了额外的开销。
标签: java lambda java-8 java-stream