Java Arrays einfach erklärt: Schleifen und 2D-Arrays
Aktualisiert am 22. Oktober 2026
Ein Array in Java löst ein einfaches Problem: Mit einer Variablen speicherst du nur einen Wert. Für zehn Messwerte oder die sieben Wochentage bräuchtest du zehn oder sieben Variablen. Ein Array fasst viele Werte desselben Typs unter einem Namen zusammen, und mit einer Schleife in Java gehst du sie alle durch.
Anlegen, lesen, ändern
Die eckigen Klammern hinter dem Typ machen daraus ein Array: int[], String[], double[]. Es gibt zwei Wege, eins anzulegen:
- mit festen Werten:
String[] fruits = {"Apple", "Banana", "Cherry"}; - mit einer Größe:
int[] zeros = new int[4];(alle Plätze sind dann0, beiStringnull)
Jeder Platz hat eine Nummer, den Index. Gezählt wird ab 0: fruits[0] ist das erste Element, fruits[fruits.length - 1] das letzte. length ist die Anzahl der Plätze. Sie steht beim Anlegen fest und ändert sich nicht mehr.
Arrays.toString(...) (mit import java.util.Arrays;) macht aus einem Array einen lesbaren Text.
import java.util.Arrays;
public class Main { public static void main(String[] args) { String[] fruits = {"Apple", "Banana", "Cherry"}; System.out.println(fruits[0]); System.out.println("Length: " + fruits.length);
fruits[1] = "Mango"; for (int i = 0; i < fruits.length; i++) { System.out.println(i + ": " + fruits[i]); }
int[] zeros = new int[4]; System.out.println(Arrays.toString(zeros)); System.out.println(Arrays.toString(fruits)); }}Arrays mit Schleifen
Die klassische Form läuft mit einem Index von 0 bis length - 1. Damit kannst du lesen, schreiben und auch rückwärts laufen. So arbeitet auch die lineare Suche.
Brauchst du den Index nicht, ist die for-each-Schleife kürzer: for (int number : numbers) heißt „für jede Zahl in numbers“. Sie liest nur. Werte im Array ändern geht damit nicht.
import java.util.Arrays;import java.util.Scanner;
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] numbers = new int[n]; for (int i = 0; i < n; i++) { numbers[i] = scanner.nextInt(); } System.out.println("Read: " + Arrays.toString(numbers));
int even = 0; for (int number : numbers) { if (number % 2 == 0) { even++; } } System.out.println("Even numbers: " + even);
System.out.print("Backwards:"); for (int i = numbers.length - 1; i >= 0; i--) { System.out.print(" " + numbers[i]); } System.out.println(); }}
Eingabe5 3 8 1 6 4
Die erste Zahl der Eingabe sagt, wie viele Zahlen folgen.
Zweidimensionale Arrays
Ein Array kann selbst Arrays enthalten, zum Beispiel für eine Tabelle, ein Spielfeld oder einen Kinosaal. int[][] points ist ein Array von Zeilen, jede Zeile ein int[]. points[1][2] ist Zeile 1, Spalte 2 (beides ab 0 gezählt). points.length ist die Zahl der Zeilen, points[row].length die Länge einer Zeile.
public class Main { public static void main(String[] args) { // One row per student, one column per exercise int[][] points = { {3, 5, 4}, {2, 5, 5}, {4, 1, 3}, }; for (int row = 0; row < points.length; row++) { int total = 0; for (int col = 0; col < points[row].length; col++) { total += points[row][col]; } System.out.println("Student " + (row + 1) + ": " + total + " points"); } System.out.println("Second student, third exercise: " + points[1][2]); }}Typische Fehler
Index außerhalb des Arrays
Das letzte Element hat den Index
length - 1. Miti <= numbers.lengthgreift die Schleife einmal zu weit, und das Programm bricht ab:ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
In der Bedingung gehört
<, nicht<=.Array direkt ausgeben
System.out.println(numbers)gibt nicht den Inhalt aus, sondern etwas wie[I@1b6d3586. Für den InhaltArrays.toString(numbers)benutzen.Zuweisen ist kein Kopieren
Eine Array-Variable zeigt auf das Array, sie enthält es nicht. Nach
int[] b = a;zeigen beide auf dasselbe Array:int[] a = {1, 2, 3};int[] b = a;b[0] = 99;System.out.println(a[0]); // 99Array zu klein angelegt
Die Größe eines Arrays lässt sich nicht nachträglich ändern. Weißt du die Anzahl erst aus der Eingabe, lies sie zuerst ein und lege das Array danach an:
int[] numbers = new int[n];. Soll die Sammlung beim Programmlauf wachsen, nimm eineArrayList(siehe Listen und Maps in Java).
Aufgaben zu diesem Thema
Übe das Gelernte direkt im Browser. Tests prüfen deine Lösung sofort.
Verwandte Artikel
- SchleifenJava Schleifen einfach erklärt: for, while, do-while, break und continue mit Beispielen. Plus die typischen Fehler, die in Klausuren Punkte kosten.Zum Artikel
- Listen und MapsListen und Maps in Java einfach erklärt: ArrayList, HashSet und HashMap mit Beispielen. Plus typische Fehler wie List<int> und remove bei Zahlen.Zum Artikel
- SuchenLineare und binäre Suche in Java einfach erklärt: mit Codebeispielen, Laufzeit O(n) und O(log n) und den typischen Fehlern aus der Klausur.Zum Artikel