У меня есть две сущности, Person
и Age
.В то время как значения Person
являются уникальными, Age
может быть одинаковым для нескольких Person
.
Если бы я хотел только поиск Age
из Person
, я бы использовал HashMap
.Но я также хочу получить список Person
конкретного Age
.Решение, которое я могу придумать, заключается в следующем HashMap<String, List<Long>>
для обратного поиска.Есть ли структура данных или интерфейс типа карты с поиском O (1) в обоих направлениях, который выполняет работу двух HashMap
в одном?Обратите внимание, что я использовал Person
и Age
в качестве тривиального примера, и что настоящие примеры не хранятся в базе данных, а извлекаются из службы, поэтому я должен обрабатывать их по мере получения.
Обновление:
Я думаю, что Guavas MultiMap может решить эту проблему.Потому что в моем случае и ключ и значение String
, так что это будет работать.Просто кажется немного нечистым.