1. Einführung
Bei einem Array handelt es sich um eine Datenstruktur, die mit einem Bücherregal vergleichbar ist. Wörtlich übersetzt bedeutet dieser Begriff einfach „Anordnung“oder „Aufstellung“. In einem Array werden immer nur Daten vom selben Typ gespeichert. Du würdest schließlich auch nicht deine Wäsche in einem Bücherregal und deine Bücher im Kleiderschrank aufbewahren, oder?
Bevor du deine Bücher verstauen kannst, benötigst du zuerst ein Bücherregal, das eine bestimmte Aufnahmekapazität (bzw. Länge) hat. So verhält es sich auch mit dem Array. Du musst anfangs (je nach Anzahl der zu speichernden Elemente) definieren, wie groß dein Array sein soll. Erst dann kannst du mit dem Einräumen beginnen. Diese Konstruktion wirkt etwas sperrig, denn du kannst auf neue Situationen (wenn dir z. B. jemand ein Buch schenkt) nicht ohne Mehraufwand reagieren. Was ist, wenn dein Bücherregal voll ist? Was ist, wenn du zu wenige Bücher hast, um dein Regal auszufüllen? In der Fachsprache nennt man diese Eigenschaft „statisch“. Arrays sind also keine dynamischen, sondern statischen Datenstrukturen.
Die einzelnen Elemente in einem Array können durch einen Index angesprochen werden. Dabei solltest du beachten, dass das erste Element in einem Array immer mit 0 adressiert wird. Es ist schade, dass wir nicht bereits im Kindesalter lernen beim Zählen mit der 0 anzufangen. So musst du jetzt leider immer umdenken. Der Index eines Arrays mit 5 Elementen läuft von 0 bis 4. Für ein Array mit 10 Elementen läuft der Index von 0 bis 9. Wenn du ein Array mit allgemein n Elementen betrachtest, läuft der Index von 0 bis n-1, d. h. der letzte Index ist immer um 1 kleiner als die Anzahl der Elemente im Array.
Neben den einfachen (eindimensionalen) Arrays, um die es in diesem Video geht, gibt es noch mehrdimensionale Arrays, die z. B. zur Darstellung von Spielfeldern genutzt werden können, und assoziative Arrays, deren Elemente bspw. via Namen (als String) anspricht.
2. Wann solltest du Arrays nutzen?
Wann solltest du Arrays nutzen? Vor allem dann, wenn die Anzahl der Elemente im Vorfeld bekannt ist und du sie auf einfache Art und Weise per Index ansprechen willst. Das ist bei einem Schachbrett der Fall. Der Zugriff auf einzelne Elemente im Array ist sehr schnell möglich, nämlich in O(1) (d. h. konstanter Zeit). Du musst lediglich den gewünschten Index angeben und erhältst das in dem jeweiligen Feld gespeicherte Element.
3. Welche Nachteile haben Arrays?
Der wohl größte Nachteil eines Arrays ist sein statischer Charakter:
- Wenn du zu wenig Platz für deine Elemente vorsiehst, kannst du nicht einfach ein weiteres Feld „hinten anhängen“. Wie bei einem Bücherregal musst du zuerst einen neuen, größeren Container definieren. Anschließend räumst du alle Elemente aus dem Array aus und in das neue ein.
- Reservierst du hingegen zu viel Platz, ist das auch nicht gut. Es kann nämlich passieren, dass du den vielen Platz überhaupt nicht brauchst, du aber bereits den Speicher dafür allokiert hast. Das wäre in etwa so, wie wenn du dir ein riesiges Bücherregal, das viel zu groß für deine 20 Bücher ist, in deine Wohnung stellst und somit keinen Platz für einen größeren Kleiderschrank hast, da der alte völlig überquillt.
Oft weißt du im Vorfeld nicht, wie viele Elemente zur Laufzeit deines Programms benötigt werden. Besonders bei Programmen, die mit vielen Daten hantieren, wäre es sinnvoll, auf eine dynamische Speicherstruktur wie (z. B. Listen) auszuweichen.
Autor: Florian André Dalwigk
Dieser Artikel hat 50 Bonuspunkte erhalten. Schreib auch du einen Artikel.