Класс Java Map, который может содержать два или более ключей для одного значения - PullRequest
4 голосов
/ 27 октября 2011

Я ищу класс карты Java, который может содержать два или более ключей для одного значения.Это почти как MultiKeyMap в общих коллекциях apache, но он может использовать только один из ключей для получения значения вместо использования всех ключей.

Например, для создания записи на картедля значения «Hello World» с ключами «key1» и «key2»:

    map.put("Hello World", "key1", "key2");

Тогда, если я хочу получить значение, я могу использовать два возможных способа:

    String value = map.get("key1");

или

    String value = map.get("key2");

В MultiKeyMap вам нужно указать все ключи для получения значения:

    String value = map.get("key1", "key2");

UPDATE: Люди говорят мне использовать обычный класс Map, но я не уверен, будет ли карта с двумя ключами, указывающими на одно и то же значение, генерировать два повторяющихся значения или нет в памяти.Так кто-нибудь может это подтвердить?

Ответы [ 2 ]

6 голосов
/ 27 октября 2011

Почему бы просто не повторить Значение для каждого Ключа в обычной карте?

1 голос
/ 27 октября 2011

Хм, мне кажется, что вы можете приблизиться к тому, что вы хотите сделать:

map.put("key1", "Hello World");
map.put("key2", "Hello World");

Тогда key1 и key2 оба вернут "Hello World".

Конечно, этого не произойдет, если объединить логически повторяющиеся значения в одну ссылку.Но ты бы хотел сделать это?Кажется, что такие вещи могут привести к путанице побочных эффектов в будущем, если вы размещаете какие-либо изменяемые типы на карте.

...