WikiDer > Assoziatives Array
EIN assoziatives Array ist in einem Programmiersprache, ein Datencontainer die über ein Schlüsselobjekt nach einem anderen Objekt sucht.
EIN Array ist in der Regel eine Liste von Werten, aus der Sie über einen Index in Form einer Zahl auf einen Wert zugreifen können. In einem assoziativen Array muss der Index nicht unbedingt eine Zahl sein, sondern kann auch a . sein Schnur sein.
Ein assoziatives Array geht auch als a . durchs Leben Mappe oder ein Wörterbuch. Das Wort Mappe wird verwendet, weil diese Datenstruktur a Kartierung was eine Art Übersetzung ist. Hier kommt der Begriff Wörterbuch Sie geben ein Wort ein und ein anderes Wort kommt heraus. Ein assoziatives Array ist einer Tabelle aus a . sehr ähnlich relationale Datenbank.
Erläuterung
Angenommen, in einer fiktiven Programmiersprache sieht die Syntax zum Abfragen eines Werts aus einem Array so aus:
Array-Name[Index]
Beispielsweise Adressen[1] gibt die Adresse an Position 1 im Array zurück. Dies ist nicht immer praktikabel, denn oft möchte man die Adresse einer Person mit beispielsweise einem bestimmten Namen haben. Das Datenstruktur 'array' ist in diesem Fall weniger geeignet, weil dann ein Schleife geschrieben werden, das das Array durchläuft und kontinuierlich auf den Namen prüft. Das ist unnötig Quellcode und ist auch in Bezug auf die Rechenzeit nicht effizient.
Es ist viel lesbarer, wenn dies geschrieben werden kann als
Arrayname[Suchschlüssel]
damit das Abfragen des gewünschten Array-Elements so aussieht Adressen["Jan"]. Genau das ist ein assoziatives Array. Der Suchschlüssel muss nicht wie in diesem Beispiel ein String sein, sondern kann ein beliebiger Objekttyp sein.
Ein assoziatives Array kann wie ein mehrdimensionales Array nach mehreren Schlüsseln suchen. Beispielsweise: Adressen["jan", "schmied"]. Es ist jedoch üblicher, zuerst ein Objekt zu erstellen, das den vollständigen Suchschlüssel enthält, und diesen als Argument zu übergeben. So würde es in einer fiktiven Programmiersprache aussehen:
Arrayname[Schlüsselklasse(Schlüssel1, Schlüssel2)]
Benutzen
Assoziative Arrays werden in vielen Programmiersprachen verwendet. Einige 'skriptähnliche' Sprachen wie AWK oder Javascript kennen nur assoziative Arrays als Container. In anderen Sprachen ist es eine der möglichen Datenstrukturen, die verwendet werden können. Im Java Standardmäßig wird eine Klasse bereitgestellt, die diese Funktionalität bereitstellt. Im C Diese Einrichtung wird von der Standardvorlagenbibliothek (STL), aber auch Microsoft hat das in seinem MFC sitzen.
Implementierung
Ein assoziatives Array kann auf verschiedene Weise implementiert werden. Der Schlüssel zur Implementierung ist, dass die Elementsuche schnell ist (idealerweise O(1)), was dafür bezahlt wird, dass das Hinzufügen oder Entfernen von Elementen teurer wird und/oder mehr Speicher verwendet wird.
Eine häufig verwendete Implementierung ist die Hash-tabelle. Das assoziative Array wird in perlhash erwähnt.
Eine Alternative ist eine Baumstruktur, wie z. B. eine ausgeglichene Binärbaum oder ein Bayer-Baum. Dies ist in der STL der Fall.