如何创建一个从其他地图获取值然后将它们映射到其字段的地图?
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
对象。
所以我有一个 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
对象。