我有2张地图
Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
我想将这些地图加入mapA中的值和mapB中的键,结果应该是
Map<A, B> mapA
Map<B, List<C>> mapB
我愿意知道如何使用Java8中的流来做到这一点。
为简单起见,A,B,C在我看来都是字符串。
答案 0 :(得分:4)
您可以遍历地图并轻松构建新地图。
Map<A,List<C>> mapC = new HashMap<>();
mapA.forEach((key,value)->mapC.put(key, mapB.get(value)));
您可以使用this链接,该链接比较各种迭代键值对的效率,以选择要使用的方法。
答案 1 :(得分:2)
您可以这样做:
mapC = mapA.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> mapB.get(e.getValue())));