因为许多整数在求和时会溢出,所以我需要一个长流来完成这项工作,但它不接受 int
数组。如何在流式传输时转换每个元素而不是使用 long
数组?
// arr is an int[]
LongStream s = Arrays.stream( arr); // error
result = s.reduce(0, Long::sum);
编辑:似乎使用 Tagir Valeev 的回答中的方法将整数流变成了长流。
LongStream asLongStream();
最佳答案
LongStream s = Arrays.stream(arr).asLongStream();
顺便说一句,s.reduce(0, Long::sum)
是简单 sum()
的较长替代方案方法(在内部做同样的事情):
long result = Arrays.stream(arr).asLongStream().sum();
关于Java LongStream求和int数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32797195/