stream流分组求和Bigde
时间: 2023-10-25 16:09:30 浏览: 157
你可以使用流(Stream)来实现对元素进行分组求和的操作。首先,你需要使用`Collectors.groupingBy()`方法将元素分组成一个Map,然后再使用`Collectors.summingInt()`方法对每个分组中的元素进行求和。
下面是一个示例代码,演示了如何使用流进行分组求和:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Map<Integer, Integer> sumByGroup = numbers.stream()
.collect(Collectors.groupingBy(n -> n % 3, Collectors.summingInt(Integer::intValue)));
System.out.println(sumByGroup);
}
}
```
运行以上代码,输出结果如下:
```
{0=18, 1=12, 2=15}
```
在这个例子中,我们将数字列表按照取模运算的结果进行分组,然后对每个分组中的元素进行求和。最终得到的结果是一个包含分组键和求和结果的Map。
阅读全文