我有两张地图:
Map<Integer, String> mapOne = {(1,"a"), (2, "b")};
Map<Integer, Double> mapTwo = {(1,10.0), (2,20.0)};
我想按整数值将这些映射合并为一个,所以结果映射是
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())));
因此,您从第一个映射开始并创建一个新映射,其中键是mapOne 的值,值是mapTwo 中的相应值。
从技术上讲,这在某种程度上相当于迭代第一个映射的条目集。
Note: requires import static java.util.stream.Collectors.toMap;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)