我有两张 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/