Assoziatives Array
Das ?Assoziative Array? ist eine Datenstruktur, die - anders als ein echtes Array - nichtnumerische Schlüssel (zumeist Zeichenketten) verwendet, um die enthaltenen Elemente zu adressieren; diese liegen in keiner festgelegten Reihenfolge vor.Idealerweise werden die Schlüssel so gewählt, dass eine für die Programmierer nachvollziehbare Verbindung zwischen Schlüssel und Datenwert besteht.
Mathematisch betrachtet wird durch die Wertezuordnungen im assoziativen Array eine Funktion mit endlichem Wertebereich beschrieben. Eine Implementation ist mit Bäumen möglich, die weitaus häufigste Umsetzung ist jedoch die Hashtabelle.
Programmiersprachen, die assoziative Arrays unterstützen, sind z. B. Perl, PHP, Python, Ruby, Smalltalk, Tcl, C++, Objective-C (als Klasse der Standardbibliothek), D, Java, Delphi (als Array-Property), PostScript und Visual Basic. Statt von einem assoziativen Array spricht man auch von einem Dictionary (Smalltalk, Python, Objective-C, PostScript), einer Map (C++, Java), einem Hash (Perl, Ruby) oder einer Hashtable/Hashmap (Java).
Beispiele
Die Ausgabe aller Beispiele ist "Mustermann". Es handelt sich um jeweils das identische Beispiel, implementiert in verschiedenen Sprachen.
Eindimensionales Assoziatives Array in Ada
Person = ( Vorname => Hans,
Name => Mustermann,
Geburtstag => 01.01.01,
Wohnort => Musterstadt),
Person("Name")
Das gleiche Beispiel in Tcl
set person(Vorname) Hans
set person(Name) Mustermann
set person(Geburtstag) 01.01.01
set person(Wohnort) Musterstadt
puts $person(Name)
oder
array set person { Vorname Hans
Name Mustermann
Geburtstag 01.01.01
Wohnort Musterstadt }
puts $person(Name)
Das gleiche Beispiel in PHP
$person = array ( "Vorname" => "Hans",
"Name" => "Mustermann",
"Geburtstag" => "01.01.01",
"Wohnort" => "Musterstadt");
echo $person['Name'];
oder
$person['Vorname'] = "Hans";
$person['Name'] = "Mustermann";
$person['Geburtstag'] = "01.01.01";
$person['Wohnort'] = "Musterstadt";
echo $person['Name'];
Das gleiche Beispiel in Perl
%person = ( 'Vorname' => 'Hans',
'Name' => 'Mustermann',
'Geburtstag' => '01.01.01',
'Wohnort' => 'Musterstadt' );
print $person{'Name'};
Das gleiche Beispiel in Java
Map
person.put("Vorname", "Hans");
person.put("Name", "Mustermann");
person.put("Geburtstag", "01.01.01");
person.put("Wohnort", "Musterstadt");
System.out.println(person.get("Name"));
Das gleiche Beispiel in C++
map
person[ "Vorname" ] = "Hans";
person[ "Name" ] = "Mustermann";
person[ "Geburtstag" ] = "01.01.01";
person[ "Wohnort" ] = "Musterstadt";
cout << person["Name"];
Das gleiche Beispiel in Python
person = { "Vorname" : "Hans",
"Name" : "Mustermann",
"Geburtstag": "01.01.01",
"Wohnort" : "Musterstadt" }
print person["Name"]
In Python ist auch folgendes möglich:
print '%(Vorname)s %(Name)s, %(Wohnort)s' % person
Das gleiche Beispiel in Ruby
person = { :Vorname => 'Hans',
:Name => 'Mustermann',
:Geburtstag => '01.01.01',
:Wohnort => 'Musterstadt'}
puts person[:Name]

