Array
Einführung
Arrays in Java sind Container-Objekte, die eine feste Anzahl von Werten eines bestimmten Datentyps speichern. Das Wort "Array" lässt sich ins Deutsche mit "Ansammlung" oder "Aufstellung" übersetzen. Arrays werden in Java als eigene Klasse in der Standardbibliothek verwaltet und sind komplexe Datentypen. Sie bilden die Grundlage für die Implementierung dynamischer Datenstrukturen wie der ArrayList.
Eindimensionale Arrays
Ein eindimensionales Array speichert eine geordnete Menge von Elementen eines Typs, vergleichbar mit einem Bücherregal, das eine Reihe von Büchern aufnimmt.
Grundsätzlicher Aufbau

Ein Array besteht aus einer festdefinierten Anzahl von Speicherplätzen (seine Länge). Jeder Speicherplatz, auch Element genannt, ist über einen numerischen Index adressierbar. Die Nummerierung beginnt immer bei 0. Die Länge eines Arrays wird bei seiner Instanziierung festgelegt und kann später nicht mehr verändert werden.
Syntax
Deklaration
Bei der Deklaration wird der Typ und Name des Arrays festgelegt, aber noch kein Speicherplatz reserviert. Die eckigen Klammern []
kennzeichnen die Variable als Array.
// Deklaration eines Integer-Arrays
int[] einArray;
// Arrays beliebiger (primitive oder komplexer) Datentypen sind möglich
byte[] einArrayMitBytes;
Mitarbeiter[] einArrayMitMitarbeitern;
Instanziierung und Initialisierung
Die Instanziierung erfolgt mit dem Schlüsselwort new
, wobei die Länge des Arrays angegeben wird.
// Instanziierung mit einer Länge von 10
einArray = new int[10];
Alternativ kann ein Array direkt bei der Deklaration mit Werten initialisiert werden. Die Länge ergibt sich aus der Anzahl der Elemente.
// Kurzschreibweise zur Deklaration und Initialisierung
int[] einArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000 };
Speichern und Lesen
Der Zugriff auf Elemente erfolgt über den Index in eckigen Klammern.
// Speichern eines Wertes an Index 0
einArray[0] = 100;
// Lesen des Wertes von Index 0
System.out.println("Element Index 0: " + einArray[0]);
Beispiel
Das folgende Beispiel demonstriert die Handhabung eines eindimensionalen Arrays.
class ArrayDemoEindimensional {
public static void erstelleArray() {
// Deklaration und Instanziierung
int[] einArray = new int[10];
// Befüllen des Arrays
einArray[0] = 100;
einArray[1] = 200;
einArray[2] = 300;
einArray[3] = 400;
einArray[4] = 500;
einArray[5] = 600;
einArray[6] = 700;
einArray[7] = 800;
einArray[8] = 900;
einArray[9] = 1000;
// Auslesen und Ausgabe der Elemente
for (int i = 0; i < einArray.length; i++) {
System.out.println("Element Index " + i + ": " + einArray[i]);
}
}
}
Ausgabe:
Element Index 0: 100 Element Index 1: 200 ... Element Index 9: 1000
Mehrdimensionale Arrays
Mehrdimensionale Arrays sind "Arrays von Arrays". Ein zweidimensionales Array kann man sich als Matrix oder Tabelle vorstellen, bei der jede Zelle durch zwei Indizes (z.B. Zeile und Spalte) eindeutig bestimmt ist. Sie werden in der Praxis z.B. zur Darstellung von Bildern (Matrizen von Pixelwerten) verwendet.
Grundsätzlicher Aufbau
Ein zweidimensionales Array enthält mehrere eindimensionale Arrays. Die Deklaration erfolgt mit weiteren eckigen Klammern.
Syntax
Deklaration
// Deklaration eines zweidimensionalen String-Arrays
String[][] promis;
Instanziierung und Initialisierung
// Instanziierung einer 10x2 Matrix
promis = new String[10][2];
Speichern und Lesen
Der Zugriff erfordert die Angabe aller Indizes.
// Speichern von Werten
promis[0][0] = "Boris";
promis[0][1] = "Becker";
// Lesen von Werten
System.out.println(promis[0][0] + " " + promis[0][1]);
Beispiel
class ZweiDimensionalesArray {
public static void erstelle2DArray() {
// Deklaration und Instanziierung
String[][] promis = new String[4][2];
// Befüllen der Matrix
promis[0][0] = "Boris"; promis[0][1] = "Becker";
promis[1][0] = "Angela"; promis[1][1] = "Merkel";
promis[2][0] = "Lana"; promis[2][1] = "Del Ray";
promis[3][0] = "Lukas"; promis[3][1] = "Podolski";
// Ausgabe
for (int i = 0; i < promis.length; i++) {
System.out.println("Aktueller Promi:");
System.out.println(promis[i][0] + " " + promis[i][1]);
}
}
}
Ausgabe:
Aktueller Promi: Boris Becker Aktueller Promi: Angela Merkel Aktueller Promi: Lana Del Ray Aktueller Promi: Lukas Podolski
Häufige Fehler
ArrayIndexOutOfBoundsException
Diese Exception wird geworfen, wenn versucht wird, auf einen Index zuzugreifen, der negativ ist oder größer/gleich der Länge des Arrays. Der Fehler tritt zur Laufzeit auf.
Beispiel:
int[] einArray = new int[10];
System.out.println(einArray[10]); // Zugriff auf Index 10, obwohl nur 0-9 erlaubt sind
NullPointerException
Diese Exception tritt auf, wenn auf ein Element eines Arrays zugegriffen werden soll, das null
ist. Dies passiert häufig bei Arrays komplexer Datentypen, die nicht vollständig initialisiert wurden.
Beispiel:
Mitarbeiter[] mitarbeiterListe = new Mitarbeiter[5];
mitarbeiterListe[0] = new Mitarbeiter("Paul", "Müller");
// mitarbeiterListe[1] wurde nie initialisiert und ist null
System.out.println(mitarbeiterListe[1].gibNachname()); // NullPointerException