2015-12-04 3 views
1

Я вижу, есть Multimap, что позволяет повторяющиеся значения для ключа http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.htmlКарта Multi Key Multi Value возможна?

Я также заметил, гуава имеет Table, которая позволяет несколько ключей, но не дублировались значения. http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Table.html

Я не могу найти где-нибудь, где есть «Таблица», которая позволяет дублировать значения, или «Multimap», который позволяет использовать несколько ключей.

Является ли это тем, что уже существует, или я должен сам реализовать это?

Я просто хочу, чтобы реализовать Multimap с 2 ключами, т.е. <K1, K2, Value>

+0

Вы имеете в виду, что 'k1',' k2' следует использовать как составной ключ для одной записи? Или что значение может быть проиндексировано либо 'k1', либо' k2'? – erickson

+0

K1 и K2 должны быть составным ключом для этого значения –

+0

Хорошо, [Луи прибил его] (http://stackoverflow.com/a/34078721/3474). (Он развивает Гуаву.) – erickson

ответ

1

Там нет ничего, что я знаю о том, что поддерживает эту потребность. Однако, это не очень сложно, например, используйте команду Multimap<MyK1AndK2Pair, Value>, где вы сами пишете собственный класс пар или, наоборот, используете Table<K1, K2, List<Value>> и сами управляете вещами.

+0

darn, ладно, спасибо. –

1

Как насчет вложенных карт?

Multimap<K1, Multimap<K2, Value>> doubleMultiMap = new HashMultiMap<>(); 
0

Я думаю, вы можете использовать MultiKeyMap Apache Commons. В его описании указано:

Реализация карты, которая использует несколько ключей для сопоставления значения.