„Hi, Amigo!“

„Hey, Ellie!“

„Heute erzähle ich dir von einer neuen und interessanten Einheit: Arrays. Ein Array ist ein Datentyp, der nicht nur einen Wert aufnehmen kann, sondern mehrere.“

Arrays - 1

„Beginnen wir mit einer Analogie. Lass uns ein Haus und ein Mehrfamilienhaus vergleichen. Ein gewöhnliches Haus wird in der Regel nur von einer Familie bewohnt, aber ein Mehrfamilienhaus ist in viele Wohnungen unterteilt. Um einen Brief an eine in einem Haus lebende Familie zu schicken, muss man die eindeutige Adresse des Hauses angeben. Um einen Brief an eine Familie zu schicken, die in einem Mehrfamilienhaus lebt, muss man in manchen Ländern die eindeutige Adresse des Mehrfamilienhauses und die Wohnungsnummer angeben.“

„Klingt bisher logisch.“

„Eine Array-Variable ist wie eine Variable für ein Mehrfamilienhaus. Du kannst viele Werte darin speichern, anstatt nur einen. Eine solche Variable hat mehrere Wohnungen (Elemente), auf die du über eine Wohnungsnummer (Index) verweisen kannst. Dazu gibst du den Index des Array-Elements, auf das du zugreifen möchtest, in eckigen Klammern hinter dem Namen der Array-Variablen an. Das ist ganz einfach.“

„Ich hoffe es, Ellie.“

„Eine Variable für ein Mehrfamilienhaus (Array-Variable) kann Elemente beliebigen Typs enthalten. Du musst lediglich ‚Typname[] variablenname‘ statt ‚Typname variablenname‘ schreiben.“

Hier ein paar Beispiele:

Code Beschreibung
String[] list = new String[5];
Erstelle ein String-Array mit 5 Elementen.
System.out.println(list[0]);
System.out.println(list[1]);
System.out.println(list[2]);
System.out.println(list[3]);
System.out.println(list[4]);
Es werden fünf ‚null‘-Werte angezeigt.

Um auf den Wert eines bestimmten Array-Elements zuzugreifen, verwende eckige Klammern und den Index des Elements.

int listCount = list.length;
listCount wird der Wert 5 zugewiesen, also die Anzahl der Elemente im Array list.
list.length speichert die Länge des Arrays (Anzahl der Elemente).
list[1] = "Mom";
String s = list[1];
Bei der Zuordnung von Objekten zu Array-Elementen musst du den Elementindex in eckigen Klammern angeben.
for (int i = 0; i < list.length; i++)
{
     System.out.println(list[i]);
}
Zeige die Werte aller Array-Elemente auf dem Bildschirm an.

„Sehr interessant!“

„Eine Array-Variable erfordert eine zusätzliche Initialisierung.“

– ?

„Eine normale Variable kannst du einfach deklarieren und ihr dann verschiedene Werte zuweisen. Bei einem Array ist die Sache etwas komplizierter.“

„Du musst zuerst einen Behälter erstellen, der N Elemente enthält, und erst dann kannst du anfangen, Werte in den Behälter einzufügen.“

Code Beschreibung
String[] list = null;
Die Array-Variable list ist null. Sie kann nur eine Referenz auf einen Behälter für Elemente speichern. Du musst den Behälter separat anlegen.
String[] list = new String[5];
Erstelle einen Behälter für 5 Elemente und weise eine Referenz auf die list-Variable zu. Dieser Behälter hat 5 Wohnungen (Elemente) mit den Nummern 0, 1, 2, 3 und 4.
String[] list = new String[1];
Erstelle einen Behälter für 1 Element und weise eine Referenz zur list-Variable zu. Um etwas in diesem Behälter abzulegen, würden wir so etwas wie list[0] = "Yo!"; schreiben.
String[] list = new String[0];
Erstelle einen Behälter für 0 Elemente und weise eine Referenz zur list-Variable zu. In diesem Behälter kannst du nichts speichern.

„Ach so. Jetzt verstehe ich es langsam.“

„Hier ein paar grundlegende Fakten über Arrays:“

1) Ein Array besteht aus vielen Elementen.

2) Um auf ein bestimmtes Element zuzugreifen, gib dessen Nummer (Index) an.

3) Alle Elemente sind vom gleichen Typ.

4) Der Anfangswert für alle Elemente ist null; für Arrays von primitiven Typen ist der Anfangswert 0, 0.0 (für Dezimalzahlen) bzw. false (für boolean-Werte). Das ist genau wie bei nicht initialisierten Variablen, die sich nicht in Arrays befinden.

5) String[] liste deklariert einfach eine Variable. Du musst zuerst ein Array (Behälter) erstellen, etwas hineinlegen und erst dann kannst du es verwenden (siehe Beispiel unten).

6) Wenn wir ein Array-Objekt (Behälter-Objekt) erstellen, müssen wir seine Länge oder die Anzahl der Elemente angeben. Dazu benutzen wir new Typname[n];

Arrays - 2

Hier ein paar Beispiele:

Code Beschreibung
String s;
String[] list;
s ist gleich null
list ist gleich null
list = new String[10];
int n = list.length;
Die list-Variable speichert eine Referenz auf ein Objekt – ein String-Array mit 10 Elementen.
n ist gleich 10
list = new String[0];
Jetzt enthält list ein Array mit 0 Elementen. Das Array existiert, kann aber keine Zeichenketten speichern.
list = null;
System.out.println(list[1]);
Dies löst eine Ausnahme (Laufzeitfehler) aus und das Programm wird vorzeitig beendet: list enthält eine Nullreferenz.
list = new String[10];
System.out.println(list[11]);
Dies löst eine Ausnahme (Laufzeitfehler) aus: Array-Index außerhalb der Grenzen.

Wenn list 10 Elemente enthält, sind die gültigen Indizes: 0,1,2,3,4,5,6,7,8 und 9 (insgesamt also 10 Indizes).