Java 8 : how to 'JOIN' two Maps having the same Keys?

标签 java join java-8 java-stream

<分区>

我有两个 map ,都共享相同的 key 。

Map<Long/*JOIN.ID*/, Long/*Temp ID*/> tempIDsMap;
Map<Long/*JOIN.ID*/, Long/*Real ID*/> realIDsMap;

我想要得到的(可能使用 Java 8 Stream API 并避免循环)是这些映射在 JOIN.ID 键上的 JOIN,以获得如下所示的新映射:

Map<Long/*Temp ID*/. Long/*Real ID*/> realIDsByTempMap;

最佳答案

使用Collectors.toMap:

Map<Long,Long> realIDsByTempMap = 
    tempIDsMap.entrySet()
              .stream()
              .collect(Collectors.toMap(Map.Entry::getValue,
                       e -> realIDsMap.get(e.getKey())));

关于Java 8 : how to 'JOIN' two Maps having the same Keys?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51741990/

相关文章:

java - 实例化一个带有某些注释的类

java - 从 Google 云端硬盘下载文件 - 缺少方法? (java)

java - map 流到 map

java - 在 Java 中获取 Lambda 的结果

java - 在 Play 2 中使用 anchor 重定向

sql - 使用/JOIN 查询更快地删除

python - 在 Python 中合并具有数百万行的两个表

sql - 表有重复数据,无法让两个聚合函数在 SQL 查询中工作

android-studio - Android Studio 用 Ja​​va 8 编译项目?

java - 有没有办法从元注释中注入(inject) Jackson 注释值,类似于 Spring 的 AliasFor 注释?