Eine Hash-Map (auch Hash-Tabelle genannt) ist eine Datenstruktur, die verwendet wird, um Schlüssel-Wert-Paare effizient zu speichern und darauf zuzugreifen. Sie bietet durchschnittlich konstante Zeitkomplexität (O(1)) für Such-, Einfüge- und Löschoperationen. Hier sind die grundlegenden Konzepte und Funktionsweisen einer Hash-Map:
Kollisionen treten auf, wenn zwei unterschiedliche Schlüssel denselben Hash-Wert und damit denselben Bucket erzeugen. Es gibt mehrere Methoden zur Behandlung von Kollisionen:
Hier ist ein einfaches Beispiel einer Hash-Map-Implementierung in Python:
class HashMap:
def __init__(self, size=10):
self.size = size
self.map = [[] for _ in range(size)]
def _get_hash(self, key):
return hash(key) % self.size
def add(self, key, value):
key_hash = self._get_hash(key)
key_value = [key, value]
for pair in self.map[key_hash]:
if pair[0] == key:
pair[1] = value
return True
self.map[key_hash].append(key_value)
return True
def get(self, key):
key_hash = self._get_hash(key)
for pair in self.map[key_hash]:
if pair[0] == key:
return pair[1]
return None
def delete(self, key):
key_hash = self._get_hash(key)
for pair in self.map[key_hash]:
if pair[0] == key:
self.map[key_hash].remove(pair)
return True
return False
# Beispiel der Nutzung
h = HashMap()
h.add("key1", "value1")
h.add("key2", "value2")
print(h.get("key1")) # Ausgabe: value1
h.delete("key1")
print(h.get("key1")) # Ausgabe: None
Zusammengefasst ist eine Hash-Map eine äußerst effiziente und vielseitige Datenstruktur, die besonders für Szenarien geeignet ist, in denen schnelle Zugriffszeiten auf Daten benötigt werden.