Ein Java-Array ist eine Liste von beliebigen Datenobjekten des gleichen Typs. Die Arraygröße (Anzahl der Elemente) wird zur Laufzeit festgelegt und kann später nicht mehr verändert werden. Es läßt sich also nur eine vordefinierte Anzahl von Daten speichern. Die einzelnen Elemente werden über ihren Index angesprochen. Beim Zugriff muss das gesamte Array durchsucht werden. Die Speicherung ist schnell, der Zugriff etwas langsam.
Beispiele für Arrays
public class Test { public static void main(String[] args) { int[] a; // Array anlegen ohne Anzahl der Elemente a = new int[5]; // Initialisierung des Arrays mit 5 Elementen boolean[] b = new boolean[15]; // Deklaration mit 15 Elementen char[] c = {'a','b','c'}; // Deklaration mit Werten => Arraygröße = 3 Elemente a[0]=11; a[1]=22; b[0]=true; b[1]=false; System.out.println(a[0]); // Ausgabe: 11 System.out.println(a[1]); // Ausgabe: 22 System.out.println(b[1]); // Ausgabe: false System.out.println(c[2]); // Ausgabe: c System.out.println("c hat "+c.length+" Elemente"); // Ausgabe: c hat 3 Elemente } }
Array sortieren
public class Test { public static void main(String[] args) { String[] Texte = new String[2]; Texte[0] = "b"; Texte[1] = "a"; System.out.println(Texte[0]+Texte[1]); // Ausgabe: ba Arrays.sort(Texte); System.out.println(Texte[0]+Texte[1]); // Ausgabe: ab } }
Array an Methode übergeben
public class Test { public static void main(String[] args) { int[] myArray = {2,4,6}; ausgeben(myArray); } static void ausgeben(int[] werte){ for(int i=0;i<werte.length;i++){ System.out.println("Wert "+i+": "+werte[i]); } } }
Zweidimensionales Array
public class Test { public static void main(String[] args) { int[][] array = new int[2][2]; array[0][0] = 10; array[0][1] = 20; array[1][0] = 30; array[1][1] = 40; System.out.println(array[1][1]); // Ausgabe: 40 } }
Mehrdimensionales Array
public class Test { public static void main(String[] args) { int iArray[][] = { {0}, {1,2}, {3,4,5} }; for(int i=0;i<iArray.length;i++) { for (int j=0;j<iArray[i].length;j++) { System.out.print(iArray[i][j]); } System.out.println(); } } }
Beispiel mit einer Autoinstanz und ein paar Arrayspielereien
public class Auto { private String typ; private String farbe; public Auto(String t, String f) { typ=t; farbe=f; } public void showAuto() { System.out.println("Typ: "+typ+ ", Farbe: "+farbe); } } public class Test { public static void main(String[] args) { Auto a1=new Auto("VW","rot"); // Instanz anlegen Auto a2=new Auto("Opel","blau"); Auto a3=a2; // Instanz kopieren Auto[] autos=new Auto[10]; // Array anlegen autos[0]=a1; // Instanz in Array autos[1]=a2; autos[2]=a3; for (int i=0;i<autos.length;i++) { if (autos[i]==null) {} else { // Wenn kein leeres Arrayelement autos[i].showAuto(); // Instanz anzeigen } } } }