Link zu www.kneller-gifs.de

Datenstruktur Array

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.

Einfache Arraybeispiele
  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]);
      }
    }
  }
// Ausgabe: Wert 0: 2 // Ausgabe: Wert 1: 4 // Ausgabe: Wert 2: 6

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
      }
    }
  }
}