我想找到List<int[]>使用Java 8 的总和.这是我的尝试.
int sum = counts.stream().flatMap(i -> Stream.of(i).mapToInt(m)).sum();
Run Code Online (Sandbox Code Playgroud)
但是,我得到的错误无法转换Stream<Object>为<unknown>.
War*_*ard 31
您想要flatMap到IntStream.在那之后,拿这笔钱很容易.
int sum = counts.stream()
.flatMapToInt(IntStream::of)
.sum();
Run Code Online (Sandbox Code Playgroud)
JB *_*zet 14
int sum = counts.stream().flatMapToInt(array -> IntStream.of(array)).sum();
Run Code Online (Sandbox Code Playgroud)
你i是一个原始数组(int[]),所以Stream.of(i)会返回一个Stream<int[]>.
我建议你先计算每个数组的总和,然后总结所有数组:
int sum=counts.stream()
.mapToInt(ar->IntStream.of(ar).sum()) // convert each int[] to the sum
// of that array and transform the
// Stream to an IntStream
.sum(); // calculate the total sum
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
int sum = counts.stream() // getting Stream<int[]>
.mapToInt(a -> Arrays.stream(a).sum()) // getting an IntStream with the sum of every int[]
.sum(); // getting the total sum of all values.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |