java - 按键连接两个 map

标签 java join map merge

我有两张 map :

Map<Integer, String> mapOne = {(1,"a"), (2, "b")};
Map<Integer, Double> mapTwo = {(1,10.0), (2,20.0)};

并且我想通过Integer值将这些映射组合成一个,所以结果映射是

Map<String, Double> mapResult = {("a",10.0), ("b",20.0)};

有没有比遍历条目集更容易做到这一点的方法?

最佳答案

假设两个映射的键匹配并且映射具有相同数量的条目,对于 Java 8,您可以将其写在一行中:

Map<String, Double> map = mapOne.entrySet().stream()
                            .collect(toMap(e -> e.getValue(),
                                           e -> mapTwo.get(e.getKey())));

因此,您从第一个 map 开始并创建一个新 map ,其中键是 mapOne 的值,值是 mapTwo 中的相应值。

从技术上讲,这在某种程度上等同于遍历第一个 map 的条目集。

注意:需要import static java.util.stream.Collectors.toMap;

关于java - 按键连接两个 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24017856/

相关文章:

java - 共享首选项未更新

mysql - 使用 Sum 函数连接多个表的 SQL 查询

mysql - 在 mysql 中的左连接查询中需要帮助

android - OSMdroid : How to load offline map from zip archive - MapTileFileArchiveProvider

r - 在正交投影中绘制世界地图给出 "non finite points"

java - 在java中分别运行线程

java - 与Java编程的混淆

java - LinkedList : java. lang.OutOfMemoryError:Java堆空间

mysql - SQL 连接一列中缺少值

java - 为什么我的 map 坏了?