Ein Array (auch Feld, Container) wird in Java dafür verwendet, eine größere Anzahl typgleicher Werte zentral in einer Variable zu speichern. In der Mathematik ist dieser Datentyp als Matrix bekannt.
Syntax
Der Umgang mit Arrays unterliegt in Java bestimmten Befehlen, die im folgenden an einem Beispiel erläutert werden sollen.
Klaus hat in einer Tabelle sein Erspartes in Euro über mehrere Jahre notiert.index | Wert |
---|---|
2010 | 530 |
2011 | 670 |
2012 | 715 |
2013 | 840 |
2014 | 910 |
2015 | 1020 |
Er implementiert diese Liste in Java um damit Berechnungen anstellen zu können. Vor dem Erstellen eines Arrays sollte die Dimensionalität (siehe unten: Mehrdimensionale Arrays - in diesem Fall zweidimensional), die Größe (hier 6) und der Eingabetyp (hier Integer) geklärt werden.
Arrays deklarieren
Arrays werden nach folgendem Schema eingeleitet:
Typ[] Name = new Typ[Anzahl];
Auf unser Beispiel bezogen:
int[] TabelleVonKlaus = new int[6];
Arrays initialisieren
Da das erzuegte Array aber noch leer ist, wird es jetzt mit den Werten aus Klaus' Tabelle gefüllt. Dafür gibt es zwei Möglichkeiten:
int[] TabelleVonKlaus = {530,670,715,840,910,1020}; oder TabelleVonKlaus[0] = 530; TabelleVonKlaus[1] = 670; TabelleVonKlaus[2] = 710; TabelleVonKlaus[3] = 840; TabelleVonKlaus[4] = 910; TabelleVonKlaus[5] = 1020;
Zugriff auf Arrays
Häufig wird verlangt, auf ein bestimmtes Element des Arrays zuzugreifen. Klaus möchte beispielsweise wissen, wie viel Geld er 2013 zurücklegen konnte.
int Differenz2013 = TabelleVonKlaus[3] - TabelleVonKlaus[2];
Operationen mit Arrays
Weitere interessante Operationen mit Arrays:
Gibt die Länge des Arrays als Integer aus (hier 6):
laenge = TabelleVonKlaus.length;
Arrays können auch geklont werden. Bei unserem Beispiel hat Klaus eine Frau, die Heike. Sie gehen mit ihrem geld sehr offen um, weshalb Klaus' Erspartem auch Heikes' Erspartem entspricht.
int[] TabelleVonHeike = TabelleVonKlaus.clone();
Um zu prüfen, ob die Eingaben zweier Arrays gleich sind, lässt sich mit folgender Methode das gesamte Array mit einem anderen vergleichen. Die Ausgabe erfolgt in true oder false.
Arrays.equals (TabelleVonKlaus, TabelleVonHeike); //in diesem Fall true
Ein Array kann auch mit einer einfachen Funktion mit Werten geflutet werden:
TabelleVonKlaus.fill( int, '0' ); //Alle Felder haben nun den Integerwert '0'.
Weitere Funktionen sind hier oder in der allgemeinen Klassenbibliothek zu finden.
Mehrdimensionale Arrays
Bisher haben wir ja nur mit einer Spalte (einer Dimension) gearbeitet, nun kann man aber mit weiteren Dimensionen arbeiten. Theoretisch könnten unendlich viele Dimensionen generiert werden, die jeweils unterschiedlich lang sein können. Bei Operationen muss daher immer die genaue Position des Feldes wie in einem Koordinatensystem angegeben werden.
int[][] testarray = new int[2][2]; testarray[0][0] = 10; testarray[0][1] = 20; testarray[1][0] = 30; testarray[1][1] = 40;
Dieses Array sähe dann so aus:
. | 0 | 1 |
---|---|---|
0 | 10 | 20 |
1 | 30 | 40 |
Wissenswertes
Arrays werden - im Gegensatz zu anderen Variablen - im Arbeitsspeicher des Computers gesichert.
Weiterführende Links
http://www.programmersbase.net/Content/Java/Content/Tutorial/Java/Array.htm
http://www.javatutorial.de/Arrays
http://www.java-programmieren.com/arrays-java.php
http://www.informatikzentrale.de/java-arrays.html
http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_03_007.htm