Если изображение, у нас есть объект, называемый человеком, и человек выглядит как follwing:Значение по умолчанию для возврата Collectors.toMap
class Person {
int id;
String name;
String country
// ...
// getter/setter
}
И у нас есть List
из Person
объектов, и мы хотим «преобразовать» его к карте. Мы можем использовать следующее:
Map<Long, List<Person>> collect = personList.stream().
collect(Collectors.toMap(Person::getId, p -> p));
Но можно вернуть значения по умолчанию для valuemapper и изменить тип valuemapper?
Я думал, на что-то вроде этого:
Map<Long, List<Person>> collect =
personList.stream().collect(Collectors.groupingBy(Person::getId, 0));
, но с этим я получаю следующую ошибку is not applicable for the arguments
У меня есть обходной путь, но я думаю, что это на самом деле не очень.
Map<Long, Object> collect2 = personList.stream().
collect(Collectors.toMap(Person::getId, pe -> {
return 0;
}));
Зачем использовать группировку? Не имеет ли каждый человек уникальный идентификатор? Что вы здесь группируете? – Eran
Да, ты прав. Извините, мой тупой, потому что у меня в моем идее есть другой объект, но прежде чем появятся вопросы о том, что этот объект и что делает и т. Д., Я решил использовать «allrounder» для этого примера. я меняю его. –
Мне сложно понять, чего вы хотите достичь. Что вы хотите, чтобы карта содержала: укажите пример с 3 или 4 людьми и итоговую карту. –