java中list快速分组求和代码
时间: 2023-08-06 14:03:04 浏览: 86
JAVA8 stream中三个参数的reduce方法对List进行分组统计操作
5星 · 资源好评率100%
Java中可以使用Java 8中的Stream API来实现list快速分组求和。
例如,假设我们有一个包含数字的列表,要将它们按照奇偶性分组并求和,可以这样做:
```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);
// 使用stream()方法将列表转换为Stream对象,并使用Collectors.groupingBy()方法对数字进行分组
Map<String, Integer> sums = numbers.stream()
.collect(Collectors.groupingBy(
num -> num % 2 == 0 ? "even" : "odd", // 按照奇偶性进行分组
Collectors.summingInt(num -> num) // 对每组中的数字求和
));
System.out.println(sums); // 输出: {odd=25, even=30}
}
}
```
上述代码将输入列表中的数字按照奇偶性进行了分组,并对每个组内的数字进行了求和,最终输出了一个包含每个组的和的Map对象。
阅读全文