Java:分组按子值作为值
2022-09-01 22:55:07
比方说,我有一个对象 Person,其字段类型为“名字”和“姓氏”。现在我也有一个,我喜欢使用流。List<Person>
现在我想生成一个,以便对具有相同名字的人进行分组。如何在不编写太多代码的情况下执行此操作?到目前为止,我的做法是Map<FirstName, List<LastName>>
personList
.stream()
.collect(Collectors.groupingBy(
Person::getFirstName,
person -> person.getLastName() // this seems to be wrong
));
但似乎这是分配地图值的错误方法。我应该更改什么?或者我是否应该使用.reduce作为初始值,然后通过将元素放入其中来聚合到它?new HashMap<FirstName, List<LastName>>()