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.