Как устроена хеш-таблица (HashMap)
Python
Middle
Без компании
Как устроена хеш-таблица (HashMap)
Ответы
Хеш-таблица — это структура данных, которая хранит пары ключ-значение. Она использует хеш-функцию для вычисления индекса (хеша) ключа, по которому значение сохраняется в массиве (бакетах).
**Основные принципы:**
- **Хеш-функция** преобразует ключ в индекс массива.
- **Коллизии** (когда разные ключи дают одинаковый хеш) решаются:
- Методом цепочек (списки в бакетах).
- Открытой адресацией (поиск следующего свободного слота).
**Пример на Python (упрощённый):**
```
class HashMap:
def __init__(self, size=10):
self.size = size
self.buckets = [[] for _ in range(size)]
def _hash(self, key):
return hash(key) % self.size
def put(self, key, value):
index = self._hash(key)
for i, (k, v) in enumerate(self.buckets[index]):
if k == key:
self.buckets[index][i] = (key, value)
return
self.buckets[index].append((key, value))
def get(self, key):
index = self._hash(key)
for k, v in self.buckets[index]:
if k == key:
return v
raise KeyError(key)
```