Listen und Arrays
Häufig erfordert es ein Programm, dass mehrere Werte gleichzeitig gespeichert werden. Hierfür gibt es zwei Konzepte, die sehr ähnlich sind sich jedoch in gewissen Details unterscheiden.
Arrays
Eine anschauliche Art sich ein Array vorzustellen ist eine Tabelle. Eine Tabelle, wie z.B. in Excel hat im einfachsten Fall nur eine Zeile. In diesem Fall reicht die Angabe der Spalte um klar zu sagen, welche Daten gemeint sind.
Beispiel Einkaufsliste:
Adresse | 0 | 1 | 2 | 3 | 4 |
Daten | Brot | Butter | Schokocreme | Saure Gurken | Senf |
Häufig haben Tabellen mehr als eine Zeile. In diesem Fall benötigt man zur genauen Adressierung eine Information sowohl über die Zeile als auch die Spalte.
Beispiel 1 - Adressierung:
[0] | [1] | [2] | [3] | $\cdots$ | |
[0] | [0][1] | ||||
[1] | [1][3] | ||||
[2] | [2][1] | ||||
$\vdots$ |
In der Programmierung wird bei Arrays immer zuerst die Zeile und dann die Spalte angegeben. Einige Beispiele sind oben entsprechend beschriftet.
Zur Übung folgt nun ein Beispiel:
Beispiel 2 - Übung
[0] | [1] | [2] | [3] | [4] | |
[0] | Hammer of Doom | Handtuch (sollte man immer dabei haben) | |||
[1] | Küchenmesser der Geselligkeit | ||||
[2] | Fläschchen mit den Tränen meiner Erzfeinde | epischer Windbeutel | |||
[3] | Mäusefalle des ewigen Käses (Weber Spezial) |
Charakteristische Eigenschaften eines Arrays
- Ein Array belegt einen festen Bereich im Arbeitsspeicher. Durch diese fixe Adressierung ist ein sehr effizienter Zugriff auf die Daten in einem Array möglich.
- Durch die fixe Speicheradressierung ist ein Array nicht dymanisch erweiterbar. Wenn der Platz in einem Array zur Laufzeit des Programms nicht mehr ausreicht ist es nicht ohne weiteres möglich das Array zu vergrößern.
Syntax von Arrays
Python
Python verfügt nativ nicht über Arrays. In Python werden Datensammlungen meist über Listen verwaltet.
Java
Listen
Listen gibt es in der Programmierung sehr häufig. Bei Listen werden Daten zu einer Einheit zusammengefasst. Häufig werden hierbei Daten gleichen Typs verwendet, je nach Implementierung können aber auch Daten unterschiedlichen Typs gespeichert werden. Im Unterschied zu einem Array sind Daten in einer Liste nicht in einem fixen Bereich des Arbeitsspeichers gelagert sondern können an beliebigen Stellen liegen. Dadurch sind sie in der Benutzung flexibler und können dynamisch erweitert werden. Als Nachteil ergibt sich hier eine geringere Performance als bei Arrays.
Aufbau einer Liste
Listen arbeiten durch Zeiger auf andere Listenelemente. Ein Element verweist hier stets auf das nachfolgende Element. In der folgenden Abbildung ist dies anhand einer Liste von Zahlen verdeutlicht. Hier sind nacheinander die Zahlen 4, 3, 7 usw. in einer Liste zusammengefügt. Die 4 "kennt" die Adresse ihres Nachfolgers, der 3. Die 3 wiederrum verfügt nicht über die Adresse der 4. In diesem Fall nennt man die Liste einfach verkettet, da immer nur die Nachfolger bekannt sind. Bei einer erweiterten Form wird in jedem Listenelement auch die Adresse des Vorgängers gespeichert, dann liegt eine doppelt verkettete Liste vor. Der Zugriff auf Elemente der Liste erfolgt, wie bei Arrays auch, über den Index des Elements. Im hier angegebenen Beispiel würde z.B. die Zuweisung
nummer = zahlen[2]
der Variable nummer den Wert 7 zuweisen.
— Yannik Wehr 2020/05/26 19:56 |
Syntax
Python
Anlegen einer Liste
liste_mit_Werte = [3, 4, 2, 1, 6] liste_ohne_Werte = []
Zugriff auf ein Listenelement
liste = [3, 4, 2, 1, 6] zahl_a = liste[0] zahl_b = liste[3]
Hier wird zahl_a den Wert 3 haben und zahl_b den Wert 1.
Werte einer Liste verändern
liste = [3, 4, 2, 1, 6] liste[0] = 9
Nach der hier abgebildeten Zuweisung enthält die Liste die Werte [9, 4, 2, 1, 6].
Ein Element anhängen
liste = [3, 4, 2, 1, 6] liste.append(42)
Nach dem hier abgebildeten Code enthält die Liste die Werte [9, 4, 2, 1, 6, 42].
Weitere Funktionen
Neben den hier erläuterten Befehlen verfügt die Liste in Python über weitere Funktionen. Diese können z.B. hier nachgeschlagen werden.
Java