Java 有一个List放着实体类 这个类有一个字段是名字 想根据名字把这个List用Stream流分类并且对实体类工时字段进行统计
时间: 2023-05-24 13:03:25 浏览: 151
A:
可以使用Java 8中的Stream流和Collectors工具类来实现这个需求。
首先定义一个实体类,假设这个实体类的名字为Person,其中包含一个名字字段name和一个工作小时数字段workingHours:
public class Person {
private String name;
private int workingHours;
public Person(String name, int workingHours) {
this.name = name;
this.workingHours = workingHours;
}
public String getName() {
return name;
}
public int getWorkingHours() {
return workingHours;
}
}
然后,假设有一个List
Map<String, Integer> result = list.stream()
.collect(Collectors.groupingBy(Person::getName,
Collectors.summingInt(Person::getWorkingHours)));
上述代码中,使用了groupingBy()方法将List
注意:结果中可能还有一些没有名字的Person,这些Person的名字为null,我们可以在最后将它们单独分组或者过滤掉即可。
相关推荐















