将两个地图组合成一个MultiMap

Jak*_*lsh 13 java multimap guava

将两个地图组合成Java中的单个Guava MultiMap的最佳方法是什么?

例如:

  • Map1包含(1,a)和(2,b)
  • Map2包含(2,c)和(3,d)

然后生成的组合多图将包含

  • (1,{a}),(2,{b,c})和(3,{d})

这是我目前的解决方案:

Multimap<T, K> combineMaps(Map<T, K> map1, Map<T, K> map2) {
    Multimap<T, K> multimap = new MultiMap();
    for (final Map.Entry<T, K> entry : map1.entrySet()) {
        multimap.put(entry.getKey(), entry.getValue());
    }
    for (final Map.Entry<T, K> entry : map2.entrySet()) {
        multimap.put(entry.getKey(), entry.getValue());
    }
    return multimap;
}
Run Code Online (Sandbox Code Playgroud)

Lou*_*man 23

......这些是什么样的多图?他们来自番石榴还是其他图书馆?

在番石榴,你可以做到

multimap.putAll(Multimaps.forMap(map1));
multimap.putAll(Multimaps.forMap(map2));
Run Code Online (Sandbox Code Playgroud)