Java 8:如何“加入”两个具有相同键的Map?

时间:2018-08-08 08:26:15

标签: java join java-8 java-stream

我有两个地图,都共享相同的密钥。

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

我想获得的结果(也许使用Java 8 Stream API并避免循环)是在JOIN.ID键上联接这些映射,以获得如下所示的新Map:

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

1 个答案:

答案 0 :(得分:4)

使用Collectors.toMap

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