За какое время получают доступ по ключу в map

«За какое время получают доступ по ключу в map» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Доступ к элементу в map по ключу в среднем занимает O(1) времени (амортизированная сложность). В худшем случае (при коллизиях) время может увеличиться до O(n), но на практике такое случается редко благодаря хеш-функциям и динамическому расширению map.

Пример:

m := make(map[string]int)
m["foo"] = 42
val := m["foo"] // доступ за O(1)

Под капотом Go использует хеш-таблицу, где ключ хешируется для быстрого поиска соответствующего "ведра". При правильном распределении хешей доступ почти мгновенный.