Я заметил, что есть MultiValueMap из общих ресурсов, однако он не поддерживает генерики. Есть такая карта, которая делает?
Вы пробовали мультикарту Guava?
Коллекция, похожая на карту, но которая может связывать несколько значений с одним ключом.Если дважды вызвать put (K, V) с одним и тем же ключом, но разными значениями, мультикарта содержит сопоставления от ключа до обоих значений. В зависимости от реализации мультикарта может разрешать или не разрешать дубликат ключапарыДругими словами, содержание мультикарты после добавления одного и того же ключа и значения дважды варьируется между реализациями.В мультикартах, допускающих дублирование, мультикарта будет содержать два сопоставления, а get возвратит коллекцию, которая дважды содержит значение.В мультикартах, не поддерживающих дубликаты, мультикарта будет содержать одно сопоставление от ключа к значению, а get возвратит коллекцию, которая включает значение один раз.
Коллекция, похожая на карту, но которая может связывать несколько значений с одним ключом.Если дважды вызвать put (K, V) с одним и тем же ключом, но разными значениями, мультикарта содержит сопоставления от ключа до обоих значений.
В зависимости от реализации мультикарта может разрешать или не разрешать дубликат ключапарыДругими словами, содержание мультикарты после добавления одного и того же ключа и значения дважды варьируется между реализациями.В мультикартах, допускающих дублирование, мультикарта будет содержать два сопоставления, а get возвратит коллекцию, которая дважды содержит значение.В мультикартах, не поддерживающих дубликаты, мультикарта будет содержать одно сопоставление от ключа к значению, а get возвратит коллекцию, которая включает значение один раз.
http://guava -libraries.googlecode.com / svn / trunk / javadoc / com / google / common / collect / Multimap.html
Абсолютно!Проверьте Google Guava's Multimaps.
Multimaps
Multimap<Foo, Bar> mm = new ListMultimap<Foo, Bar>(); // fill it however... Foo foo = ...; Collection<Bar> bars = mm.get(foo);
Вероятно, Guava - лучший выбор, но если вы действительно хотите придерживаться API коллекций Commons:
http://sourceforge.net/projects/collections
Версия популярной Джакарты с поддержкой обобщений Java 5Проект Commons-Collections.Все соответствующие классы из Commons-Collections 3.1 были реорганизованы для поддержки обобщений Java.