HOWTO · Java

Deklarieren Sie ein Array in Java

In diesem Artikel wird beschrieben, wie Sie ein Array in Java deklarieren.

Auf dieser Seite

Für eine Arraydeklaration setzen Sie [] hinter den Elementtyp, zum Beispiel int[] scores;. Damit deklarieren Sie die Variable; das Array selbst erzeugen Sie separat mit einer Länge oder initialisieren es mit Werten.

Eindimensionales Array deklarieren

Ein Array speichert eine feste Anzahl von Werten desselben Typs. Mit der Deklaration einer Arrayvariable legen Sie deren Arraytyp fest, erzeugen aber weder ein Arrayobjekt noch bestimmen Sie dessen Länge. Zwei gebräuchliche Schreibweisen sind int[] scores; und int scores[];. Bei der ersten stehen die Klammern direkt beim Elementtyp; sie ist die übliche Schreibweise. Beide Formen sind gültig. Weisen Sie einer lokalen Variable nach der Deklaration ein Array zu, bevor Sie ihre Elemente lesen oder beschreiben.

Führen Sie dieses Beispiel aus:

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

import java.util.Arrays;

public class DeclareAnArray {
  public static void main(String[] args) {
    int[] scores = new int[3];
    scores[0] = 18;
    scores[1] = 24;
    scores[2] = 31;
    System.out.println(Arrays.toString(scores));
  }
}

Das Beispiel ist als ausführbarer Code gedacht; hier ist keine beobachtete Ausgabe angegeben. new int[3] erzeugt ein Array mit drei Elementen und weist dessen Referenz scores zu. In einem neu erzeugten int-Array ist jedes Element zunächst 0; die Zuweisungen ersetzen diese Anfangswerte. Arrayindizes beginnen bei 0, daher liegt der letzte gültige Index um eins unter der Länge. Die Länge wird beim Erzeugen des Arrays festgelegt. Benötigen Sie eine andere Anzahl von Elementen, erzeugen Sie ein weiteres Array.

Eindimensionales Array initialisieren

Wenn die Werte bereits feststehen, können Sie ein Array mit einer geschweiften Initialisierungsliste in einer Anweisung deklarieren und initialisieren: int[] scores = {18, 24, 31};. Java leitet die Länge aus der Anzahl der Werte ab und speichert sie der Reihe nach an den Indizes 0, 1 und 2. Diese Kurzform gehört zur Deklaration. Wurde die Variable bereits vorher deklariert, verwenden Sie beim späteren Zuweisen einen expliziten Array-Erzeugungsausdruck: scores = new int[] {18, 24, 31};. Eine einfache Liste in geschweiften Klammern wie scores = {18, 24, 31}; ist als eigenständige Zuweisung ungültig.

Die explizite Form macht die Erzeugung auch dann deutlich, wenn die Initialisierung Teil eines längeren Ausdrucks ist. Wählen Sie die Form danach, ob Deklaration und Zuweisung zusammen erfolgen; beide erzeugen ein Array, dessen Länge der Anzahl der angegebenen Werte entspricht. Wird ein numerisches Array mit einer Länge, aber ohne Werte erzeugt, füllt Java jedes Element mit dem Standardwert seines Typs. Ein int-Element erhält beispielsweise den Wert 0, ein boolean-Element false und ein Referenzelement null. Diese Standardwerte gelten für Arrayelemente, nicht für eine lokale Variable, der noch kein Array zugewiesen wurde.

Arrays aus einem IntStream erstellen

IntStream kann ein int[] erzeugen, wenn die Werte aus einer Folge oder einer ausgewählten Zahlenliste stammen. Importieren Sie es aus java.util.stream.IntStream. Für eine fortlaufende Zahlenfolge liefert IntStream.range(0, 5).toArray() die Werte {0, 1, 2, 3, 4}. Der Startwert ist eingeschlossen, der Endwert ausgeschlossen. Wenn der Startwert kleiner als der Endwert ist, entspricht die Anzahl der erzeugten Werte daher der Differenz zwischen den Grenzen. toArray verarbeitet den Stream und gibt ein primitives Integer-Array zurück.

Für bestimmte Werte verwenden Sie IntStream.of(2, 5, 3, 8).toArray(). Die Reihenfolge der Werte bleibt erhalten; sie werden weder sortiert noch entfernt, wenn sie mehrfach vorkommen. Weisen Sie einen der beiden Ausdrücke einer als int[] deklarierten Variable zu, zum Beispiel int[] sequence = IntStream.range(0, 5).toArray();. Das eignet sich, wenn ein Stream-Ausdruck bereits beschreibt, wie die Werte gewonnen werden. Eine geschweifte Initialisierungsliste ist für eine kurze, feste Werteliste oft übersichtlicher. Diese Beispiele erläutern Java-APIs, ohne eine Aussage zur Java-Version zu machen.

Zweidimensionales Array deklarieren

Java stellt ein zweidimensionales Array als Array dar, dessen Elemente selbst Arrays sind. Die Deklaration int[][] grid; legt diesen Typ fest. Mit int[][] grid = new int[2][3]; erzeugen Sie zusätzlich ein äußeres Array mit zwei Zeilenarrays, die jeweils drei Integer-Elemente enthalten. Die beiden Größen stehen bei dieser Erzeugung für die Anzahl der Zeilen und die Anzahl der Elemente pro Zeile. Jedes Element hat zunächst den Wert 0.

Ein rechteckiges Array lässt sich mit verschachtelten geschweiften Klammern initialisieren, zum Beispiel mit int[][] grid = {{1, 2, 3}, {4, 5, 6}};. Die äußeren Klammern enthalten die Zeilen; jede innere Liste liefert die Werte für eine Zeile. Mit zwei Indizes greifen Sie auf ein Element zu. grid[1][2] bezeichnet etwa den dritten Wert in der zweiten Zeile. Da jede Zeile ein eigenes Array ist, dürfen die Zeilen unterschiedlich lang sein. Zum Beispiel erzeugt int[][] rows = new int[2][]; zunächst nur das äußere Array. Weisen Sie jeder Zeile ein Array zu, bevor Sie auf ihre Elemente zugreifen. Dieses Modell aus Arrays innerhalb eines Arrays erklärt, warum ein zweidimensionales Array kein rechteckiges Raster sein muss.