Какие знаешь структуры данных с доступом к элементу со сложностью O(1)

«Какие знаешь структуры данных с доступом к элементу со сложностью O(1)» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Массивы (Array) и хэш-таблицы (HashMap) обеспечивают доступ к элементу за O(1).

Массив — доступ по индексу:

val array = arrayOf(1, 2, 3)
val element = array[1] // O(1)

HashMap — доступ по ключу (если нет коллизий):

val map = hashMapOf("a" to 1, "b" to 2)
val value = map["a"] // O(1) в среднем

Также HashSet (аналог HashMap, но без значений) и LinkedHashMap (если нужен порядок).