dh-Materialien
Java Tutorial
 

Arrays

Arrays ermöglichen die Speicherung der Werte von primitiven Variablen und Referenzvariablen in angeordneter Form (vgl. auch: Listen).

// Deklarieren von Arrays:
AnyClass[] arr1;
int[] arr2;

Durch die bloße Deklaration eines Arrays wird noch nicht festgelegt, wieviele Elemente das Array beinhalten soll. Die Länge eines Arrays (die Anzahl seiner Elemente) wird entweder durch Instanziierung oder durch Initialisierung des Arrays festgelegt:

AnyClass[] arr1 = new AnyClass[5];
int
[] arr2 = {1, 2, 3, 4, 5};

int len1 = arr1.length; // ergibt 5
int len2 = arr2.length; // ergibt 5

Ist ein Array erzeugt, aber nicht explizit initialisiert worden, so erfolgt die Initialisierung automatisch und zwar derart, dass alle Elemente des Arrays entweder gleich 0 (bei Arrays vom Typ byte[], short[], int[] bzw. long[]), 0.0f (bei Arrays vom Typ float[]), 0.0 (bei Arrays vom Typ double[]), ' ' (bei Arrays vom Typ char[]), false (bei Arrays vom Typ boolean[]) oder null (sonst) gesetzt werden.

Array-Elemente sind indiziert, einfacher ausgedrückt:  Die Elemente eines Arrays sind nummeriert, und zwar von 0 bis len−1, wenn len die Länge dieses Arrays darstellt:

int[] arr = {1, 2, 3, 4, 5};
int num = arr[3] // ergibt 4

Die Belegung eines Arrays kann während der Laufzeit eines Programms verändert werden:

int[] arr[] = {1, 2, 3, 4, 5};
arr[3] = 7;

Durch die Programmzeile

System.out.println(arr);

erfolgt nicht etwa die Ausgabe der Elemente des Arrays arr, sondern die Ausgabe des Referenzwertes von arr, mittels dem auf das von arr referenzierte Array-Objekt verwiesen wird, etwa: [I@2c7b84de. Sollen die einzelnen Werte von arr der Reihe nach ausgegeben werden, kann dies mit Hilfe einer Schleife realisiert werden:

int[] arr = {1, 2, 3, 4, 5};
int len = arr.length;
for (int i=0; i<len; i++) {
    System.out.print(arr[i] + ", ");
}
System.out.println();

Arrays dürfen mehrdimensional sein:

int[][] arr1 = new int[3][2];
int[][] arr2 = {{1,2}, {2,3}, {3,5}};

Mehrdimensionale Arrays sind eindimensionale Arrays, in denen (gegebenenfalls verschachtelt) Arrays gespeichert sind. Das bedeutet, dass nur die Länge der ersten Dimension zwingend festgelegt sein muss:

int[] a0 = {5};
int[] a1 = {6,1};
int[] a2 = {7,1,2,3,4};
int[][] arr = {a0, a1, a2};

int len = arr.length; // ergibt 3
int num = arr[1][0];  // ergibt 6