Проблемы хеша с несколькими картами - PullRequest
1 голос
/ 12 марта 2012

У меня есть два вопроса по Java HashMap:

1) Возможно ли в любой реализации Java HashMap получить соответствующий ключ из значения?Я использую HashMultiMap (key -) Несколько значений).

2) Возможно ли в любой реализации Java HashMap получить положение ключа в HashMap?Если так, то если я добавлю новый ключ, возможно ли, что позиция ключа изменилась?Я использую HashMultiMap (ключ -) Несколько значений).

Если оба ответа НЕ, как это можно реализовать вручную (любая идея?)?

1 Ответ

6 голосов
/ 12 марта 2012

1) Да, но не эффективным способом, и в интерфейсе Map нет методов для этого с одним вызовом метода.Вам придется перебирать записи на карте, пока не найдете нужное значение;тогда у вас есть ключ соответствующей записи.Существуют такие реализации, как Google Guava BiMap, которые позволяют эффективно выполнять обратный поиск.

2) Нет, поскольку карта не является упорядоченной коллекцией: ключи не имеют определенногоположение на карте.Если вам это нужно, вы можете использовать, например, LinkedHashMap, который сохраняет пары ключ-значение в том порядке, в котором они вставлены в карту.

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