Junior — Middle
107
Мо метавонед шарҳ диҳед, ки структураи додаҳои HashMap чӣ гуна амалӣ шудааст ва дар дохили чӣ гуна кор мекунад?
Ширкатҳо дар куҷо пурсиданд
ООО КМВ Тур
Ҷавоб аз AI
sobes.tech AI
HashMap — это структура данных, которая хранит пары ключ-значение и обеспечивает быстрый доступ к значениям по ключу. Внутри она реализована как массив бакетов (корзин), каждый из которых может содержать одну или несколько пар.
Принцип работы:
- Ключ пропускается через хеш-функцию, которая вычисляет индекс бакета.
- Значение помещается в бакет по этому индексу.
- Если в бакете уже есть элементы (коллизия), они хранятся в виде связного списка или дерева.
- При поиске ключа снова вычисляется индекс, затем перебираются элементы в бакете для точного совпадения ключа.
В Python словари (dict) реализованы похожим образом, но с оптимизациями для быстрого доступа и динамического изменения размера.
Пример (упрощённый):
class SimpleHashMap:
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)
bucket = self.buckets[index]
for i, (k, v) in enumerate(bucket):
if k == key:
bucket[i] = (key, value)
return
bucket.append((key, value))
def get(self, key):
index = self._hash(key)
bucket = self.buckets[index]
for k, v in bucket:
if k == key:
return v
return None
Это демонстрирует базовый механизм хеширования и разрешения коллизий.