Ваше основное требование удовлетворяется любым классом, который реализует интерфейс Map (java.util.Map
).
Однако при выборе реализации необходимо учитыватькакие операции вы хотите оптимизировать: { Вставить , Удалить , Произвольный доступ , Последовательный доступ }
Есливам требуется только произвольный доступ к каждому вопросу (и ответу), тогда HashMap
, вероятно, является вашей лучшей ставкой.
Наиболее распространенный вариант использования словаря, такого как приложение, - перечисление сериизаписей.Таким образом, если вы собираетесь отображать серию вопросов (и ответов), рассмотрите вариант использования HashMap
, LinkedHashMap
.
Ваша основная функциональность хэш-таблицы обеспечивается HashMap
, и это приведет к O (1) сложности для поиска, однако итерация, необходимая для отображения «серий» или «списков», может быть дорогой.
В этом случае LinkedHashMap
будет лучше всего отвечать вашим потребностям, поскольку предоставляет связанный список, привязанный к базовой хэш-таблице;поэтому итерация или последовательный доступ становится недорогим .Однако компромисс этого заключается в том, что это делает добавление и удаление новых записей (вопросов) более дорогостоящими.