Преобразовать список <Person>в картуиспользуя лямбды - PullRequest
0 голосов
/ 25 февраля 2019

Я хотел преобразовать список в карту, как показано ниже.Вот пример.

У меня есть список учеников, подобный приведенному ниже фрагменту кода.Получите из него Hasmap с ключом как целое число, которое равно возрасту, а значение как список.

Из приведенного ниже фида ввода мой ответ должен выглядеть примерно так.Как мне этого добиться?

Карта [[10, {1}], [20, {2,3,4}], [30, {5}].[40, {6}]];

private static List<Person> getPersonTestData() {
    List<Person> personList = new ArrayList<>();
    personList.add(Person.of(1, "First1", "Last1", 10));
    personList.add(Person.of(2, "First2", "Last2", 20));
    personList.add(Person.of(3, "First3", "Last3", 20));
    personList.add(Person.of(4, "First4", "Last4", 20));
    personList.add(Person.of(5, "First5", "Last5", 30));
    personList.add(Person.of(6, "First6", "Last6", 40));

    return personList;
}

Заранее спасибо .......!

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете сделать это, используя groupingBy и mapping в нисходящем направлении как:

Map<Integer, List<Integer>> ageToIdsMap = getPersonTestData().stream()
        .collect(Collectors.groupingBy(Person::getAge,
                Collectors.mapping(Person::getId, Collectors.toList())));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...