Получить ключ, используя значение из карты, содержащей повторяющиеся ключи или значения

У меня есть карта с дублирующимися значениями. Теперь я хочу получить ключ, используя значение без перебора всех объектов Map.Entries. У меня есть более 500 записей на карте. Я не хочу повторять всю карту каждый раз.

Я думал об использовании BiMap из коллекций Google. Но BiMap не поддерживает дубликаты ключей. Может ли кто-нибудь подсказать, какие другие сторонние библиотеки могут быть использованы для решения этой проблемы?

Обновление: карта содержит повторяющиеся значения и загружается из текстового файла, содержащего пары ключ-значение.

2 ответа

Решение

У меня есть карта

... ну, это твоя проблема! Похоже, данные не совсем соответствуют ограничениям BiMap. Попробуйте сохранить другой упорядоченный набор ваших данных, инкапсулированных в виде кортежей (или пары упорядоченных наборов).

Вы можете использовать ListMultimap, а затем использовать Multimaps.invertFrom(), чтобы получить обратное отображение.

Другие вопросы по тегам