java8 list 转 map 汇总值
时间: 2024-10-30 12:06:39 浏览: 15
在Java 8中将List转换为Map对象方法
在Java 8中,你可以使用Stream API将List转换成Map,并通过某种规则汇总每个元素的值。这里通常需要一个键值对映射,比如Map<String, Integer>,其中key代表元素的一个属性,value代表需要汇总计算的值。
下面是一个简单的示例,假设我们有一个包含Person对象的List,每个Person都有name和age属性,我们要按name汇总所有人的age:
```java
import java.util.*;
import java.util.stream.Collectors;
class Person {
String name;
int age;
// constructor, getters and setters...
}
List<Person> personList = ...; // 假设这个list已经填充了数据
// 使用流API将List转换为Map,key为name,value为age的和
Map<String, Integer> ageSummaryMap = personList.stream()
.collect(Collectors.groupingBy(Person::getName, Collectors.reducing(0, Person::getAge));
// 现在ageSummaryMap就是按照名字分组,年龄相加的结果
```
在这个例子中,`Collectors.groupingBy()`用于根据名字分组,而`Collectors.reducing()`用于对每个组内的年龄进行累加。
阅读全文