将两个地图合并为一个Java中的Guava MultiMap的最佳方法是什么?
例如:
然后生成的组合多图包含
这是我目前的解决方案:
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;
}
答案 0 :(得分:23)
......这些是什么样的多图?他们来自番石榴还是其他一些图书馆?
在番石榴,你可以做到
multimap.putAll(Multimaps.forMap(map1));
multimap.putAll(Multimaps.forMap(map2));
答案 1 :(得分:1)
您的解决方案看起来很好。你可以像这样初始化:
Multimap<T, K> multimap = new MultiMap(map1);
然后只迭代第二张图,但复杂度/速度是相同的。