【发布时间】:2012-02-17 06:59:04
【问题描述】:
在 Java 中将两个 Map 组合成一个 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;
}
【问题讨论】:
-
嗯,通常没有最好的方法,而你的方法对我来说似乎是明智的。你有什么问题吗?如果没有,我会坚持下去(除了我也会将泛型添加到
new MultiMap():))。