【发布时间】:2019-12-11 17:34:59
【问题描述】:
我需要将对象列表转换为不同类型的分组对象列表。
public class Person {
private String name;
private String dept;
private int amount;
//constructors
//getters and setters
}
public class GroupedPersons {
private String dept;
private int sumAmount;
private List<Person> personsOfDept;
// how should be the constructor??
//getters and setters
}
List<Person> persons = Arrays.asList(
new Person("Mark", "Sales", 100),
new Person("Rob", "Marketing", 200),
new Person("Kyle", "Sales", 150),
new Person("Jack", "Accounts", 50),
new Person("Sam", "Sales", 150),
new Person("Jeff", "Marketing", 200));
我需要结果为
List<GroupedPersons>
["Sales",400,List<Person>]
["Marketing",400,List<Person>]
["Accounts",50,List<Person>]
我试过了
Map<String,List<Person>> deptMap = persons.stream().collect(Collectors.groupingBy(Person::getDept));
但无法将地图减少到我需要的对象列表。
【问题讨论】:
标签: java list object java-stream transform