In Java sind Arrays eine Möglichkeit, mehrere Werte desselben Typs in einer einzigen Struktur zu speichern. Anders als andere Datenstrukturen haben Arrays eine feste Größe, sobald sie erstellt wurden. Elemente können einem Array über einen Index zugewiesen oder daraus abgerufen werden. Java-Arrays verwenden eine nullbasierte Indizierung: Der Index des ersten Elements ist 0, der des zweiten Elements ist 1 usw.
Hier ist die Standardsyntax zum Initialisieren eines Arrays:
type[] variableName = new type[size];
type steht für den Typ der Elemente im Array. Er kann ein primitiver Typ (z. B. int) oder eine Klasse (z. B. String) sein.
size steht für die Anzahl der Elemente, die dieses Array aufnehmen kann (die später nicht geändert werden kann).
Nach dem Erstellen des Arrays werden die Elemente auf ihre Standardwerte initialisiert (typischerweise 0, false oder null).
// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];
Arrays können auch mit einer Kurzschreibweise definiert werden, die es dir erlaubt, das Array gleichzeitig zu erstellen und seinen Wert festzulegen:
// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };
Da der Compiler nun erkennen kann, wie viele Elemente das Array haben wird, kann die Länge weggelassen werden.
Array-Elemente können mit einer Indexnotation in eckigen Klammern zugewiesen und aufgerufen werden:
// Assign second element by index
twoInts[1] = 8;
// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];
Der Zugriff auf einen Index außerhalb der gültigen Indizes des Arrays führt zu einer IndexOutOfBoundsException.
Arrays können manipuliert werden, indem du entweder Methoden oder Eigenschaften einer Array-Instanz verwendest oder die statischen Methoden nutzt, die in der Klasse Arrays definiert sind (typischerweise nur in generischem Code verwendet).
Die Eigenschaft length enthält die Länge eines Arrays.
Darauf kann so zugegriffen werden:
int arrayLength = someArray.length;
Java bietet außerdem eine hilfreiche Hilfsklasse java.util.Arrays, die viele nützliche arraybezogene Methoden bietet (z. B. Arrays.equals).
Java unterstützt außerdem mehrdimensionale Arrays wie int[][] arr = new int[3][4];, die sehr nützlich sein können.
Die Tatsache, dass ein Array auch eine Collection ist, bedeutet, dass du zusätzlich zum Zugriff auf Werte über den Index mit einer for-each-Schleife über alle seine Werte iterieren kannst:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for(char vowel: vowels) {
// Output the vowel
System.out.print(vowel);
}
// => aeiou
Wenn du mehr Kontrolle darüber möchtest, über welche Werte iteriert wird, kannst du eine for-Schleife verwenden:
char[] vowels = { 'a', 'e', 'i', 'o', 'u' };
for (int i = 0; i < 3; i++) {
// Output the vowel
System.out.print(vowels[i]);
}
// => aei