如何创建一个从其他地图获取值然后将它们映射到其字段的地图?

How to create a map that takes values from other map and then maps them to its field?

所以我有一个 id 到 systemUsers 的映射,现在我想创建一个 systemUser 键和登录值的映射。登录是 systemUser class 中的一个字段。我对如何编写映射器函数有疑问,即使这是正确的方法

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

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

您只需要使用两个函数直接收集:

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

.map(PHSystemUser::getLogin) 的问题在于它将流更改为 Stream<String>,让您没有机会在下游获得整个 PHSystemUser 对象。