Как устроены таблицы Map в Go?

Middle+
761 просмотров
AFK Offer AI

Map в Go — это хеш-таблица с бакетами. Каждый бакет хранит до 8 пар ключ-значение. При коллизии элементы попадают в тот же бакет или в overflow-бакет (цепочка).

Структура: hmap содержит count, массив бакетов и hash seed. Ключ хешируется, младшие биты определяют номер бакета, старшие — позицию внутри бакета (tophash для быстрого сравнения).

При заполнении (load factor > 6.5) происходит инкрементальное расширение — создаётся новый массив бакетов в 2 раза больше, данные переносятся постепенно при каждой операции записи. Поэтому итерация по map рандомизирована — порядок не гарантирован.

Следующий вопрос

Что такое binary search?