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 dann 0, bei String null)

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();    }}
Eingabe
5
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. Mit i <= numbers.length greift 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 Inhalt Arrays.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]); // 99
  • Array 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 eine ArrayList (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