Объедините две карты в MultiMap

Как лучше всего объединить две карты в одну Guava MultiMap в Java?

Например:

  • Карта 1 содержит (1, a) и (2, b)
  • Карта 2 содержит (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;
}
13
задан Jake Walsh 29 November 2015 в 10:35
поделиться