Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 迭代地在数组中添加值并替换值_Java_Loops_Java Stream - Fatal编程技术网

Java 迭代地在数组中添加值并替换值

Java 迭代地在数组中添加值并替换值,java,loops,java-stream,Java,Loops,Java Stream,假设我有一个这样的数组-[1,1,1,2,3] 我需要使用流并需要一个数组-[1,2,3,5,8],该数组正在逐个添加元素的值 使用Java流或在获取输入时执行此操作的最佳方法是什么?(复杂性最低)最好的方法是不使用流,而是使用lambda方法来添加连续值 int[] vv = {1, 1, 1, 2, 3}; Arrays.parallelPrefix(vv, (a,b)-> a + b); System.out.println(Arrays.toString(vv)); 印刷品 [1

假设我有一个这样的数组-
[1,1,1,2,3]

我需要使用
并需要一个数组-
[1,2,3,5,8]
,该数组正在逐个添加元素的值


使用Java
或在获取输入时执行此操作的最佳方法是什么?(复杂性最低)

最好的方法是不使用流,而是使用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]
这是您的流解决方案。使用流可能有更好的方法,但它使用嵌套流来计算重复和,并在数组中返回它们

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.

流操作意味着在每个元素上独立执行。