Как создать карту, которая берет значения из другой карты, а затем отображает их в своем поле? - PullRequest
0 голосов
/ 10 июля 2019

Итак, у меня есть карта идентификаторов для systemUsers, и теперь я хочу создать карту ключей systemUser и значений входа в систему.Логин - это поле внутри класса systemUser.У меня проблема с тем, как написать функции картографа или даже если это правильный путь для этого

Map<Long, PHSystemUser> systemUserMap = getPersistenceLogic()
                      .getSystemUsersMap(serviceClientMap.values());

Map<PHSystemUser, String> loginMap = systemUserMap.values().stream()
                      .map(PHSystemUser::getLogin)
                      .collect(Collectors.toMap(, ));

1 Ответ

0 голосов
/ 10 июля 2019

Все, что вам нужно, это собрать напрямую, используя две функции:

systemUserMap.values().stream()
   .collect(Collectors.toMap(Function.identity(), PHSystemUser::getLogin));

Проблема с .map(PHSystemUser::getLogin) состоит в том, что он меняет поток на Stream<String>, не оставляя вам шансов получить весь PHSystemUser объект ниже по течению.

...