Вы можете попробовать ListMultimap .
от Guava.
Multimap<Integer, Object> multimap = ArrayListMultimap.create();
for (int i = 0; i < myVar; i++) {
multimap.putAll(Multimaps.forMap(getMyObjectMap(i)));
}
Map<Integer, Collection<Object>> allObjectsMap = multimap.asMap();
Недостатком этого подхода является то, что конечный результат имеет тип Map<K, Collection<V>>
, а не Map<K, List<V>>
. Тем не менее, ListMultimap.asMap () Javadoc заявляет:
Хотя подпись метода не
скажем так, возвращенная карта
имеет список значений.
Следовательно, некоторая последовательность приведений (например, (Map<Integer, List<Object>>) (Map<Integer, ?>)
) будет работать.