Храните список триплетов с постоянным поиском - PullRequest
0 голосов
/ 07 мая 2020

Я хотел бы сохранить список троек Enums - скажем, List<<Enum1, Enum2, Enum3>>, где я мог бы искать по любому из полей. Я имею в виду, скажем, я храню что-то вроде

List<<Enum1, Enum2, Enum3>> list; 
list[0] = [ObjectOfEnum1, ObjectOfEnum2, ObjectOfEnum3]
list[1] = [ObjectOfEnum4, ObjectOfEnum5, ObjectOfEnum6]
list[2] = [ObjectOfEnum7, ObjectOfEnum8, ObjectOfEnum9]
list[3] = [ObjectOfEnum10, ObjectOfEnum11, ObjectOfEnum12]
.
.

. Я должен иметь возможность искать по ObjectOfEnum5, чтобы получить list[1], или по ObjectOfEnum1, чтобы получить list[0]. Я хотел бы получить их за O (1). Я работаю с Java 8. Пожалуйста, укажите мне любую структуру данных, которая могла бы помочь мне в этом.

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

...