私がこのような配列を持っているとしましょう- [1, 1, 1, 2, 3]
要素の値を1つずつ追加streams
する配列を利用する必要があり[1,2,3,5,8]
ます。
JavaをStreams
使用して、または入力を取得しながらこれを行うための最良の方法は何ですか?(最小限の複雑さで)
最良の方法は、ストリームを使用せず、ラムダでArrays.parallelPrefixメソッドを使用して連続する値を追加することです。
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.
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加