2015-09-20 5 views
0

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

+1

Вы используете HashMap? –

+0

Для одного и того же значения может быть несколько ключей; чего бы вы хотели? –

ответ

2

Вы не можете сделать это с помощью простого Map (по крайней мере, не эффективным образом), поскольку ключ может иметь несколько значений, а значения не были сохранены таким образом, чтобы они быстро извлекались. Используя только обычный Map, вам нужно будет перебирать все записи, чтобы найти соответствующие ключи для значения. Тем не менее, вы можете создать свою собственную структуру данных, которая включает в себя две карты (одну от A до B, а вторую от B до A), чтобы создать двунаправленную карту с отображением 1: 1, где вы можете найти A из B или B из A в O (1) раз (я не использую «ключ» и «значение», потому что на двунаправленной карте оба типа оба). Отъезд BiMap (HashBiMap source code) из Гуавы для примера.

Смежные вопросы