Какую коллекцию лучше всего хранить и извлекать дубликат ключа, пары значений? - PullRequest
1 голос
/ 25 августа 2011

Какую структуру данных я должен использовать для хранения и извлечения следующих данных?(ключ1, val1) (ключ1, val2) (ключ1, val3) (ключ2, val4) (ключ2, val5) (ключ2, val6) (ключ3, val7) (ключ3, val8) (ключ3, val9)

Пожалуйста, помогите мне.

Ответы [ 5 ]

6 голосов
/ 25 августа 2011

Посмотрите на Google Guava Multimap и его подтипы ListMultimap и SetMultimap .

Из javadoc Multimap: Коллекция, похожая на Map, но которая может связывать несколько значений с одним ключом.

2 голосов
/ 25 августа 2011

Map<Key, Collection<Value>> - лучший подход

1 голос
/ 25 августа 2011

Я не знаю, сработает ли это для вас, но вы можете рассмотреть вопрос об изменении ключа / значения, если значения уникальны и используют стандарт Map<ValueType, KeyType>

1 голос
/ 25 августа 2011

У вас может быть карта, в которой значения являются коллекциями, такими как список / набор, в зависимости от того, различаются ли ваши пары или нет.

Если у вас есть разные пары, вы можете использовать что-то вроде Set interface:

   Map<key, Set<value>>

   Ex Map<key, HashSet<Value>>

Если у вас нет разных пар ((key1, val1), (key1, val1))Вы можете перейти к списку интерфейса:

Map<key, List<value>>    
Map<key, ArrayList <Value>>
0 голосов
/ 20 февраля 2014

Мы можем использовать MultiValueMap С Commons collections.

Ссылка: http://commons.apache.org/proper/commons-collections/

Образец:

    MultiValueMap map = new MultiValueMap();
    map.put("SAN", 4);
    map.put("SAN", 6);
    map.put("TOM", 7);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...