Assoziative Arrays – Ihre Datenbank im Handgepäck

07. Mai 2012  |  Kommentar schreiben   |  



Bei Facebook teilen

Zahlreiche Programmiersprachen (z.B. php, aber auch das betagte awk) kennen das Konstrukt von assoziativen arrays – leider viele Anwender nicht.
Ein Array, das über Ganzzahlen adressiert wird, ist den meisten Programmierern vertraut: long x(10) beschreibt 10 Ganzzahlen, je nach Syntax der Programmiersprache verwendbar als x(1) bis x(10) oder x(0) bis x(9).
Assoziative Arrays hingegen verwenden als “Schlüssel” oder Adresse eben nicht nur Zahlen, sondern lassen auch Strings zu.
x(Apfel) oder x(Birne) sind zum Beispiel gültige Arrayfelder.

Wozu dient das in der Praxis?
Stellen Sie sich als einfaches Beispiel eine Liste der Abverkäufe eines Gemüsemarktes vor, in der Form:
Produkt Menge Einnahme
Apfel 5 2,0
Birne 3 1,50
Zwiebel 10 3,0
Apfel 1 0,45
Zwiebel 2 0,70
….
In awk zum Beispiel reicht der Zweizeiler
{men[$1]+=$2;sum[$1]+=$3}
END{for (i in men) print i” “men[i]” “sum[i]}
um kumuliert die verkauften Produkte mit Menge und Umsatz auszugeben.

Wenn man gar mehrdimensionale assoziative Arrays zum Einsatz bringt x[dim1|dim2..|dimn], lassen sich komplexe Anwendungen ohne Datenbank realisieren, bei der heute üblichen Hauptspeicherkapazität können Millionen von Datenfeldern hochperformant ausgewertet werden, Laufzeitverbesserungen um zweistellige Faktoren gegenüber der herkömmlichen Auswertung mit ständigen Plattenzugriffen sind hierbei keine Seltenheit.

Teilen

Hinterlasse eine Antwort

Du musst angemeldet sein, um einen Kommentar abzugeben.