Wikipedia · einfach zusammengefasst · Stand
Zuordnungstabelle
Die Zuordnungstabelle (auch assoziatives Array, Dictionary, Hash, Map, Objekt oder Liste von Schlüssel-Wert-Paaren) ist eine Datenstruktur, bei der anders …
Inhalt3 Abschnitte
Grundidee
Eine Zuordnungstabelle ist eine Datenstruktur, in der Elemente nicht nur über fortlaufende numerische Indizes wie bei einem gewöhnlichen Array angesprochen werden. Stattdessen können auch nichtnumerische oder nicht fortlaufende Schlüssel verwendet werden, meistens Zeichenketten. Solche Strukturen heißen je nach Sprache und Zusammenhang auch assoziatives Array, Dictionary, Hash, Map, Objekt oder Liste von Schlüssel-Wert-Paaren.
Ein Schlüssel verweist auf einen Datenwert. Idealerweise ist der Schlüssel so gewählt, dass Programmierende leicht verstehen können, welcher Wert damit gemeint ist, zum Beispiel der Schlüssel „name“ für den Wert „Mustermann“. Die gespeicherten Elemente haben dabei keine festgelegte Reihenfolge.
Mathematische und technische Sicht
Mathematisch beschreibt eine Zuordnungstabelle durch ihre Wertezuordnungen eine Abbildung mit endlicher Definitionsmenge und endlicher Bildmenge. Die Definitionsmenge besteht aus den möglichen Schlüsseln, die Bildmenge aus den zugeordneten Werten.
Technisch kann eine Zuordnungstabelle mit Bäumen umgesetzt werden. Die bei weitem häufigste Umsetzung ist jedoch die Hashtabelle. Datenbanken, die solche assoziativen Daten speichern, heißen Schlüssel-Werte-Datenbanken.
Beispiel in Programmiersprachen
Der Artikel zeigt dasselbe eindimensionale assoziative Array in mehreren Programmiersprachen. In allen Beispielen enthält die Struktur eine Person mit den Zuordnungen „vorname“ zu „Hans“ und „name“ zu „Mustermann“. Die Ausgabe aller Beispiele ist „Mustermann“.
In JavaScript wird dafür ein Objekt mit Eigenschaften verwendet. In Python entsteht ein Dictionary entweder mit geschweiften Klammern oder mit der Funktion dict. Perl verwendet ein Hash mit Prozentzeichen. Tcl legt ein Array mit array set an. Haskell nutzt Data.Map, Common Lisp eine Hash-Tabelle, Objective-C ein NSMutableDictionary und PL/SQL eine Tabelle mit INDEX BY VARCHAR2(50).