使用stream流进行分组求和
时间: 2024-04-21 08:08:46 浏览: 99
JAVA8 stream中三个参数的reduce方法对List进行分组统计操作
5星 · 资源好评率100%
您可以使用流进行分组求和的一种常见方法是使用`Collectors.groupingBy`和`Collectors.summingInt`或`Collectors.summingLong`。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingSum {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 按照奇偶分组求和
Map<String, Integer> sumByEvenOdd = numbers.stream()
.collect(Collectors.groupingBy(
n -> n % 2 == 0 ? "even" : "odd",
Collectors.summingInt(n -> n)
));
System.out.println("Sum by even/odd: " + sumByEvenOdd);
}
}
```
上述代码将数字列表按照奇数和偶数分组,并对每个组内的数字进行求和。输出结果应为:
```
Sum by even/odd: {even=30, odd=25}
```
您可以根据需要修改代码来适应不同的分组条件和求和操作。
阅读全文