Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Grundlagen der Programmierung: Datenstrukturen

Assoziative Arrays

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Assoziative Arrays bestehen aus Schlüssel-Wert-Paaren. Damit wird ein inhaltlicher Zusammenhang zwischen beiden erreicht und die Werte können einfacher angesprochen werden.

Transkript

In den Datenstrukturen verwenden wir einen numerischen Index. Einen auf Null basierenden Integer-Wert, um ein Element direkt ansprechen zu können. Oder es gibt gar keinen Index. Bei verlinkten Listen bekommen wir das erste oder letzte Element und wandern vorwärts oder rückwärts durch die gesamte Struktur. Und mit Stacks und Queues verwenden wir keinen Index, sondern wir fragen nur nach dem, was oben auf dem Haufen liegt oder am Anfang der Warteschlange bereitgestellt wird. Aber jetzt kommt das, womit wir unsere Optionen noch weiter ausbauen können, wo wir die Möglichkeiten bekommen, aussagekräftige Schlüssel verwenden zu können und mit Elementen in unserer Datenstruktur zu arbeiten. Keine willkürliche Nummer, sondern eine Möglichkeit, um ein Element hinzuzufügen oder anzusprechen, das seinerseits eine bestimmte Bedeutung hat. Wir verwenden keine Mitarbeiter-ID, um an das Mitarbeiter-Objekt zu kommen. Wir verwenden ein Wort, um an die Definition des Wortes heranzukommen. Hier ein Beispiel. Ich möchte die Namen aller US-Staaten speichern. Natürlich könnte ich dafür ein Standard-Array verwenden, ein Array mit Zeichenketten, um das Problem zu lösen. Bei einem Array hat jedes Element, wie wir wissen, einen mit Null beginnenden Index. Der Grund seiner Existenz ist einfach der, uns einen Weg bereitzustellen, wie wir jedes Element unabhängig von seiner Umgebung ansprechen können. Aber sonst hat diese Nummer keine Bedeutung. Es gibt keine Beziehung zwischen einem Index und dem Wert, mit dem er verknüpft ist. Es ist das, was wir haben, wenn wir eben ein Element in das Array eintragen. Dann stellen Sie sich vor, Sie könnten so etwas haben. Wenn das Staaten-Kürzel als Index, also als Schlüssel, dienen könnte, um das Element ansprechen zu können. Dann hätten wir nicht nur eine inhaltliche Beziehung zwischen den zwei Datenstücken, es könnte sich für unsere Anwendung sogar als sinnvoll erweisen. Ich könnte möglicherweise die Abkürzung in einem Dropdown-Menü einsetzen oder als sonstiges Element der Benutzeroberfläche. Aber ich könnte den dazugehörigen vollen Namen für das Ausfüllen von automatisch generierten Rechnungen oder Berichten verwenden. Und das ist dann ein assoziatives Array. Es ist eine Sammlung von Schlüssel und Werten. Was wir da bekommen, ist ein sogenanntes Schlüssel-Wert-Paar. Und diese beiden müssen immer zusammenbleiben. Ein Schlüssel und ein Wert stellen bei einem assoziativen Array eine Einheit dar. Diese Schlüssel-Wert-Paare müssen immer eine Einheit bleiben. Daraus ergibt sich, dass im Unterschied zu einem assoziativen Array – wenn sortiert wird, ist das bei einem assoziativen Array so, dass zwar die Werte sortiert werden, das aber auf die Indexierung selbst keinen Einfluss hat. Die Reihenfolge des Index bleibt gleich. Bei einem assoziativen Array ist das anders. Bei einem assoziativen Array gibt es dadurch, dass Schlüssel und Wert immer eine Einheit bleiben müssen, nicht zwingend eine Reihenfolge und die beiden werden dann gemeinsam sortiert. Sie können also schlüsselmäßig sortieren oder Sie können auch wertmäßig sortieren. Das einzige, was dabei wichtig ist, ist dass der Schlüssel immer eindeutig sein muss. Es kann also nur einen Schlüssel mit einem bestimmten Zeichensatz geben. Bei den Werten ist das anders. Bei den Werten könnten Sie durchaus auch Duplikate haben. Es kommt nur darauf an, ob das für Ihre Anwendung Sinn macht. Genau wie Sie, sagen wir, Werte in einem Array mit Integern duplizieren können, können Sie Duplikate bei den Werten in einem assoziativen Array haben. Aber die Schlüssel, wie gesagt, die müssen eindeutig sein. Obwohl Sie sich nicht auf String-Schlüssel mit String-Werten beschränken müssen. Sie können genau so Werte haben, die zum Beispiel Objekte sind. Hier habe ich jetzt statt nur dem Namen des Bundeslandes ein ganzes Objekt, bestehend aus Namen, Hauptstadt, Einwohnerzahl, was Sie wollen. Wichtig ist nur, dass der Schlüssel selbst eine Zeichenkette ist. Rein theoretisch könnten Sie's auch noch anders machen. Sie könnten auch bei den Schlüsseln jedes beliebige Objekt haben. Nur irgendwann hört's dann auf, viel Sinn zu machen, wenn die Schlüssel so komplex werden, dass sie schwierig anzusprechen sind. Wie auch immer Sehen wir uns die Sprachunterstützung für assoziative Arrays an. Da ist es so, dass es keinen einheitlichen Namen für assoziative Arrays gibt. In Objective C und Python heißen sie Dictionaries. Also Wörterbücher. Und das ist ein recht ordentlicher Name dafür. Ein Dictionary ist eine spezielle Art, einzelne Worte zu verwenden, um nach einer größeren Bedeutung zu suchen. Es ist ein Schlüssel zu einem Wert. In Ruby würden Sie dasselbe mit einem Hash umsetzen. Und wie wir sehen werden: Hash ist ein sehr gebräuchlicher Name dafür. In Java können Sie ein assoziatives Array verwenden, indem Sie eine Hash-Tabelle oder eine HashMap verwenden. In .NET sind sie sowohl als Dictionaries als auch als Hash-Tabellen verfügbar. In C++ können Sie eine Map oder eine HashMap verwenden. Ich spreche nicht oft über JavaScript in diesem Training, da ich mich mehr an die allgemeinen Sprachen halte, aber in JavaScript verhalten sich Objekte wie assoziative Arrays. Es sind Ansammlungen von Paaren aus Schlüsseln und Werten. Wir haben noch nicht darüber gesprochen, wie dies hinter dem Vorhang umgesetzt wird. Wie abgespeichert wird, wie die Daten im Speicher bereitgestellt werden, welche Auswirkungen das Ganze auf Sortieren oder Suchen hat. Und das ist auch gut so, denn das passiert ja intern. Wir sprechen nämlich nach wie vor über abstrakte Datentypen. Und wir wollen über assoziative Arrays sprechen und nachdenken können, ohne uns sorgen zu müssen, wie sie umgesetzt werden.

Grundlagen der Programmierung: Datenstrukturen

Erhalten Sieeinen klaren Eindruck von Datenstrukturen und deren Eigenheiten und verstehen, wie Sie diese am besten einsetzen können – ganz unabhängig von den einzelnen Programmiersprachen.

2 Std. 51 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!