Assoziative Felder

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 bei weitem häufigste Umsetzung ist jedoch die Hashtabelle.

Programmiersprachen, die assoziative Arrays unterstützen, sind z. B. Lua, Perl, PHP, Python, Ruby, LISP, Tcl, Smalltalk, C++, C#, Objective-C (als Klasse der Standardbibliothek), D, Java, Delphi (als Array-Property), PostScript, GNU Bourne-Again SHell (ab Version 4.0), PL/SQL und Visual Basic. Statt von einem assoziativen Array spricht man auch von einem Dictionary (Smalltalk, Python, Objective-C, PostScript, C#), einer Map (C++, Java), einem Hash (Perl, Ruby) oder einer Hashtable/Hashmap (Java, Windows PowerShell).

Beispiele

Die Ausgabe aller Beispiele ist "Mustermann". Es handelt sich um jeweils das identische Beispiel, implementiert in verschiedenen Sprachen.

Eindimensionales Assoziatives Array in Ada:

 with Ada.Containers.Indefinite_Hashed_Maps,
      Ada.Strings.Hash,
      Ada.Text_IO;
 procedure Hash_Map_Example is
   package String_String_Maps is new Ada.Containers.Indefinite_Hashed_Maps
     (Key_Type        => String,
      Element_Type    => String,
      Hash            => Ada.Strings.Hash,
      Equivalent_Keys => "=");
   use String_String_Maps;
   Person : String_String_Maps.Map;
 begin
   Person.Insert ("Vorname"   , "Hans");
   Person.Insert ("Name"      , "Mustermann");
   Person.Insert ("Geburtstag", "01.01.01");
   Person.Insert ("Wohnort"   , "Musterstadt");
   Ada.Text_IO.Put_Line (Element (Person.Find ("Name")));
 end Hash_Map_Example;

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 = array();
 $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<String, String> person = new HashMap<String, String>();
 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<string, string> person;
 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"]
 
oder 
 
 person = {}
 person[ "Vorname"    ] = "Hans";
 person[ "Name"       ] = "Mustermann";
 person[ "Geburtstag" ] = "01.01.01";
 person[ "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]

Das gleiche Beispiel in Windows PowerShell:

$person = @{ Vorname    = 'Hans';
             Name       = 'Mustermann';
             Geburtstag = '01.01.01';
             Wohnort    = 'Musterstadt' }
$person['Name']

Das gleiche Beispiel in JavaScript:

 var person = {
   Vorname:    'Hans',
   Name:       'Mustermann',
   Geburtstag: '01.01.01',
   Wohnort:    'Musterstadt'
 };
 alert(person.Name);
 
oder
 
 var person = new Object();
 person.Vorname = 'Hans';
 person.Name = 'Mustermann';
 person.Geburtstag = '01.01.01';
 person.Wohnort = 'Musterstadt';
 alert(person.Name);

Das gleiche Beispiel in PL/SQL:

 DECLARE
   TYPE ty_person IS TABLE OF VARCHAR2(50) INDEX BY VARCHAR2(50);
   person  ty_person;
 BEGIN
   person('Vorname')    := 'Hans';
   person('Name')       := 'Mustermann';
   person('Geburtstag') := '01.01.01';
   person('Wohnort')    := 'Musterstadt';
   DBMS_OUTPUT.PUT_LINE(person('Name'));
 END;

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • C++-Standardbibliothek — Die C++ Standardbibliothek ist eine standardisierte Programmierbibliothek zur allgemeinen Verwendung. Sie stellt verschiedene generische Container, Funktionen zu deren Manipulierung, Funktionsobjekte, generische Zeichenketten (auch „Strings“… …   Deutsch Wikipedia

  • C-Plusplus-Standardbibliothek — Die C++ Standardbibliothek ist eine standardisierte Programmierbibliothek zur allgemeinen Verwendung. Sie stellt verschiedene generische Container, Funktionen zu deren Manipulierung, Funktionsobjekte, generische Zeichenketten (auch „Strings“… …   Deutsch Wikipedia

  • Funktor (Informatik) — Die C++ Standardbibliothek ist eine standardisierte Programmierbibliothek zur allgemeinen Verwendung. Sie stellt verschiedene generische Container, Funktionen zu deren Manipulierung, Funktionsobjekte, generische Zeichenketten (auch „Strings“… …   Deutsch Wikipedia

  • Dope-Vektor — Ein Feld (engl. Array [əˈɹeɪ, Betonung auf 2. Silbe] für „Anordnung“, „Aufstellung“, „Reihe“, „Reihung“, „Bereich“) bezeichnet in der Informatik eine Datenstruktur. Dabei wird zwischen einem Standard Feld und dem assoziativen Array unterschieden …   Deutsch Wikipedia

  • Feldtyp — Ein Feld (engl. Array [əˈɹeɪ, Betonung auf 2. Silbe] für „Anordnung“, „Aufstellung“, „Reihe“, „Reihung“, „Bereich“) bezeichnet in der Informatik eine Datenstruktur. Dabei wird zwischen einem Standard Feld und dem assoziativen Array unterschieden …   Deutsch Wikipedia

  • Speicherabbildungsfunktion — Ein Feld (engl. Array [əˈɹeɪ, Betonung auf 2. Silbe] für „Anordnung“, „Aufstellung“, „Reihe“, „Reihung“, „Bereich“) bezeichnet in der Informatik eine Datenstruktur. Dabei wird zwischen einem Standard Feld und dem assoziativen Array unterschieden …   Deutsch Wikipedia

  • Feld (Datentyp) — Ein Feld (englisch Array [əˈɹeɪ] (Betonung auf 2. Silbe) für ‚Anordnung‘, ‚Aufstellung‘, ‚Reihe‘, ‚Reihung‘, ‚Bereich‘) bezeichnet in der Informatik eine Datenstruktur. Dabei wird zwischen einem Standard Feld und dem assoziativen Array… …   Deutsch Wikipedia

  • Cerebral — Als das Gehirn (Hirn, lateinisch cerebrum, altgriechisch ἐγκέφαλον, enképhalon) bezeichnet man den im Kopf gelegenen Teil des Zentralnervensystems (ZNS) der Wirbeltiere. Es liegt geschützt in der Schädelhöhle, wird umhüllt von der Hirnhaut und… …   Deutsch Wikipedia

  • Cerebralis — Als das Gehirn (Hirn, lateinisch cerebrum, altgriechisch ἐγκέφαλον, enképhalon) bezeichnet man den im Kopf gelegenen Teil des Zentralnervensystems (ZNS) der Wirbeltiere. Es liegt geschützt in der Schädelhöhle, wird umhüllt von der Hirnhaut und… …   Deutsch Wikipedia

  • Encephalon — Als das Gehirn (Hirn, lateinisch cerebrum, altgriechisch ἐγκέφαλον, enképhalon) bezeichnet man den im Kopf gelegenen Teil des Zentralnervensystems (ZNS) der Wirbeltiere. Es liegt geschützt in der Schädelhöhle, wird umhüllt von der Hirnhaut und… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”