6
合計で整数がオーバーフローする可能性があるため、ジョブを実行するには長いストリームが必要でしたが、int
配列を受け入れません。 long
配列を使用する代わりに、ストリーミング時に各要素をどのように変換できますか?JavaのLongStreamで配列要素を合計する
// arr is an int[]
LongStream s = Arrays.stream(arr); // error
result = s.reduce(0, Long::sum);
編集:整数ストリームがTagir Valeevの答えのようにそのメソッドを使用して長いものになっていることが表示されます。
LongStream asLongStream();
一時的にこのdoesntのコピー配列私が想定している長い配列。ありがとう。 –
@huseyintugrulbuyukisik、もちろんコピーしません。 –
パラレルバージョンを使用すると、最初は5ms(16M要素)で計算され、その後、各合計は突然15msかかる。これはガベージコレクションの結果ですか? –