[英]Iteratively add values in array and replace values
假设我有一个这样的数组 - [1, 1, 1, 2, 3]
我需要利用streams
并需要一个数组 - [1,2,3,5,8]
,它正在逐个添加元素的值。
使用 Java Streams
或在接受输入时执行此操作的最佳方法是什么? (以最小的复杂性)
最好的方法是不使用流,而是使用Arrays.parallelPrefix方法和 lambda 来添加连续值。
int[] vv = {1, 1, 1, 2, 3};
Arrays.parallelPrefix(vv, (a,b)-> a + b);
System.out.println(Arrays.toString(vv));
印刷
[1, 2, 3, 5, 8]
这是您的 Stream 解决方案。 使用流可能有更好的方法,但这使用嵌套流来计算重复和并将它们返回到数组中。
int[] result = IntStream.range(0, vv.length).map(
i -> IntStream.range(0, i+1).map(k -> vv[k]).sum())
.toArray();
System.out.println(Arrays.toString(result)); // Prints as before.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.