Array in Java + Beispiele

Was ist ein Array in Java?

Ein Array bietet die Möglichkeit, mehrere Werte eines Datentyps zu speichern. Die einzelnen Werte werden durch Zahlen indexiert. Diese Indexierung startet immer bei 0, der erste Wert wird also an „Stelle“ 0 gespeichert, der zweite Wert wird an „Stelle“ 1 gespeichert. Dabei kann das Array beliebig lang sein, die Länge kann nur nicht mehr nach der Initialisierung verändert werden.

Wie erstelle ich ein Array in Java?

Genauso wie bei beispielsweise primitiven Datentypen muss ein Array deklariert und initialisiert werden. Ein Array erkennt man in Java immer an den eckigen Klammern ([]). Die Syntax sieht dann wie folgt aus:

Zunächst muss man den Datentyp aufschreiben, dessen Werte man in dem Array speichern möchte, gefolgt von eckigen Klammern (auf und zu). Dann kann man das Array benennen und damit ist die Deklaration abgeschlossen.

//Datentyp[] Name;

int[] alter;
string[] name;
float[] groesse;

Es gibt zwei Wege, ein Array zu initialisieren, welche in den folgenden zwei Beispielen gezeigt werden.

array java beispiel

Wie wird ein Array deklariert und initialisiert?

Zunächst einmal die Variante, in welcher ein Array direkt deklariert und mit Werten initialisiert wird. Dafür verwenden man nach dem „=“ geschweifte Klammern, in welche man direkt die Werte, welche gespeichert werden sollen eintragen kann.

int[] alter = {15,34,12,54,12,21};
		
String[] name = {"Thomas", "Christian", "Heinz"};

float[] groesse = {1.74f, 1.82f, 1.91f, 1.65f};

In der anderen Variante wird bei der Initialisierung des Arrays lediglich die Länge angegeben, es wird aber mit noch keinen Werten gefüllt. Um diese Variante zu verwenden, benutzt man das Schlüsselwort new gefolgt von dem Datentypen welcher gespeichert werden soll und dann dahinter in eckigen Klammern die Länge angeben.

int[] alter = new int[6];

String[] name = new String[3];

float groesse = new float[4];

Wie greife ich auf ein Array zu?

Bei der zweiten Variante sind keine Werte im Array gespeichert, um dies zu ändern, kann man auf die einzelnen Stellen zugreifen und diesen einen Wert zuweisen oder den existierenden Wert verändern. 

Um auf eine Stelle zuzugreifen, braucht man nur den Namen gefolgt von der Stelle in eckigen Klammer. Hier ein Beispiel, wie man den Arrays aus dem vorherigen Beispiel Werte zuweist:

int[] alter = new int[6];

alter[0] = 15;
alter[1] = 34;
alter[2] = 12;
alter[3] = 54;
alter[4] = 12;
alter[5] = 21;

Man kann wie bereits erwähnt auch Werte verändern, wie folgende Beispiele zeigen:

int[] alter = new int[6];

alter[0] = 15;
alter[1] = 34;
alter[2] = 12;
alter[3] = 54;
alter[4] = 12;
alter[5] = 21;
		
System.out.println("Array vorher: " + Arrays.toString(alter));
		
alter[0] = 99;
alter[3] = 102;
		
System.out.println("Array danach: " + Arrays.toString(alter));

Konsolenausgabe:

Array vorher: [15, 34, 12, 54, 12, 21]
Array danach: [99, 34, 12, 102, 12, 21]

Beispiel 2:

String[] name = {"Thomas", "Christian", "Heinz"};
		
System.out.println("Array vorher: " + Arrays.toString(name));
		
name[0] = "Olaf";
		
System.out.println("Array danach: " + Arrays.toString(name));


Konsolenausgabe:

Array vorher: [Thomas, Christian, Heinz]
Array danach: [Olaf, Christian, Heinz]

Wie gibt man ein Array aus?

Um einzelne Werte auszugeben, braucht man lediglich den Namen des Arrays gefolgt von der Stelle, auf welche man zugreifen möchte. Wenn man das ganze dann in ein Print-Statement verpackt kann man einzelne Werte in der Konsole ausgeben.

String[] name = {"Thomas", "Christian", "Heinz"};

float[] groesse = {1.74f, 1.82f, 1.91f, 1.65f};

System.out.println(name[0]);
System.out.println(name[2]);

System.out.println(groesse[1]);
System.out.println(groesse[2]);

Konsolenausgabe:

Thomas
Heinz
1.82
1.91

Das ganze Array in der Konsole ausgeben

Um das ganze Array auszugeben, braucht man eine for Schleife. Wenn du die for Schleife noch nicht verstanden hast, schaue unbedingt den Eintrag dazu an, da sie ein essenzieller Bestandteil der Programmierung ist: For Schleife in Java + Beispiele

Da man in der Programmierung immer bei 0 beginnt, fängt unsere for Schleife bei 0 an. Sie muss so lange hochzählen, bis man bei dem letzten Wert des Arrays angelangt sind. Um das zu tun ist Folgendes sehr hilfreich:

Array length

Jedes Array in Java speichert in einem Feld die Länge des Arrays, darauf kann man mit dem Namen gefolgt von .length zugreifen.

Da das Array bei 0 anfängt, muss man jedoch zwingend daran denken, dass man nur bis length – 1 in der for Schleife hochzählen, da man sonst eine „Index out of bounds“ Exception bekommen würden.

Da dies ein häufiger Anfängerfehler ist, hier nochmal ein Beispiel dazu, warum man length – 1 verwenden:

Wenn ein Array 4 Werte speichert hat es die Länge 4, wenn man aber auf den letzten Wert zugreifen möchten, muss man auf „Stelle“ 3 zugreifen, da ein Array ja bei 0 beginnt zu zählen. Wenn man somit versuchen würden in der for Schleife auf Stelle 4 zuzugreifen, würde sie nicht existieren und man würden einen Fehler verursachen.

array length beispiel

Nun ein Beispiel, wie man ein Array ausgibt:

int[] alter = {15,34,12,54,12,21};
		
for(int i = 0; i < alter.length; i++) {
			
	System.out.println(alter[i]);
			
}

Konsolenausgabe:

15
34
12
54
12
21

Array mit Arrays.toString ausgeben (util.Arrays)

Es ist auch möglich ein Array mit dem package util.Arrays ausgeben. Dazu kann man die methode toString von Arrays verwenden. In die Klammern kommt dann das Array, welches ausgegeben werden soll.

int[] alter = {15,34,12,54,12,21};
		
System.out.println(Arrays.toString(alter));

Konsolenausgabe:

[15, 34, 12, 54, 12, 21]

Welche Datentypen kann ein Array speichern?

Ein Array kann jeden legalen Datentypen den es in Java gibt speichern. Darunter zählen beispielsweise alle primitiven Datentypen, aber auch alle nicht primitiven Datentypen wie z. B. referenz Datentypen, wrapper Klassen, Objekte oder auch andere Arrays.

Was ist der Unterschied zwischen Array und ArrayList?

Bei ArrayList handelt es sich um die Datenstruktur aus dem java.util package. In einer ArrayList werden immer Objekte und möglicherweise auch verschiedene Objekte gespeichert, während in einem normalen Array immer nur ein Typ gespeichert werden kann.

Die ArrayList ist eine Liste realisiert durch ein normales Array jedoch kann man bei einer ArrayList alle typischen Operationen einer Liste machen wie z.B. etwas hinten an die Liste anhängen. 

Übungen zu Arrays

Arrays sind grundlegend für die Programmierung, daher sollte jeder Programmierer sich mit ihnen bestens auskennen. Hier findest du kostenlose Übungen zum Thema Array: Java Array Übungen