Карта Java, которая является Multi Value и поддерживает дженерики? - PullRequest
6 голосов
/ 15 октября 2011

Я заметил, что есть MultiValueMap из общих ресурсов, однако он не поддерживает генерики. Есть такая карта, которая делает?

Ответы [ 3 ]

10 голосов
/ 15 октября 2011

Вы пробовали мультикарту Guava?

Коллекция, похожая на карту, но которая может связывать несколько значений с одним ключом.Если дважды вызвать put (K, V) с одним и тем же ключом, но разными значениями, мультикарта содержит сопоставления от ключа до обоих значений.

В зависимости от реализации мультикарта может разрешать или не разрешать дубликат ключапарыДругими словами, содержание мультикарты после добавления одного и того же ключа и значения дважды варьируется между реализациями.В мультикартах, допускающих дублирование, мультикарта будет содержать два сопоставления, а get возвратит коллекцию, которая дважды содержит значение.В мультикартах, не поддерживающих дубликаты, мультикарта будет содержать одно сопоставление от ключа к значению, а get возвратит коллекцию, которая включает значение один раз.

http://guava -libraries.googlecode.com / svn / trunk / javadoc / com / google / common / collect / Multimap.html

4 голосов
/ 15 октября 2011

Абсолютно!Проверьте Google Guava's Multimaps.

Multimap<Foo, Bar> mm = new ListMultimap<Foo, Bar>();
// fill it however...
Foo foo = ...;
Collection<Bar> bars = mm.get(foo);
2 голосов
/ 15 октября 2011

Вероятно, Guava - лучший выбор, но если вы действительно хотите придерживаться API коллекций Commons:

http://sourceforge.net/projects/collections

Версия популярной Джакарты с поддержкой обобщений Java 5Проект Commons-Collections.Все соответствующие классы из Commons-Collections 3.1 были реорганизованы для поддержки обобщений Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...