Допустим, у меня есть объект Person с полями типа FirstName и LastName.Теперь у меня также есть 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>>()
в качестве начального значения, а затем объединить его, поместив элементы внутрь?