Kleines Nachschlagewerk Informatik
Arrays (Felder, Reihungen)
Worum geht es?
Möchte man 1000 Zahlen speichern, so bräuchte man 1000 Variable. All diese müssen angelegt werden. Möchte man weiterhin die 728. Variable auslesen, braucht man ein riesiges switch-Konstrukt, um von der Nummer 728 zur passenden Variablen zu kommen. Das ist alles nicht komfortabel.

Man braucht also die Möglichkeit, viele Werte unter einem Namen zu speichern und dort schnell den passenden Wert zu einer Nummer zu finden. Dies erledigen Arrays.

Arrays werden oft auch Felder oder Reihungen genannt.
Wie legt man Arrays an?
Bei Arrays wird der Programmieranfänger wohl zum zweiten Mal nach den Zeichenketten mit dem Unterschied Daten und Zeiger (Pointer) auf Daten konfrontiert.

      int[] meinArray;
            
Obiges Beispiel legt eine Variable meinArray an, die auf ein Feld zeigen kann. Das Feld mit Platz für Daten selbst ist noch nicht angelegt. Die eckigen Klammern deuten an, dass es sich um ein Array handelt, int besagt, dass dort Integer-Werte gespeichert werden.

      int meinArray[] = new int[20];
            
Erst jetzt ist der Platz für 20 Werte auch zugewiesen. Nun kann man Werte darin speichern.

      String meinArray = new String[20];
            
Obiges Beispiel legt ein Array an, welches bereits 20 Zeiger (Pointer) für Zeichenketten enthält. Die Zeichenketten selbst existieren noch nicht! An dieser Stelle kann man also noch nicht z.B. die Länge der dritten Zeichenkette im Array erfragen.
Zugriff auf Arrays
Um einen Wert eines Arrays auszulesen bzw. zu verändern, gibt man die Nummer in eckigen Klammern an.

      int dritterWert = meinArray[2];
      meinArray[7] = 15;
            
Die Zählung beginnt bei 0, somit hat der dritte Wert die Nummer 2. Legt man ein Array mit 20 Plätzen an, gibt es keine Nummer 20! Ein Zugriff führt zu einem Absturz.

Die Leistungsfähigkeit von Arrays erkennt man, wenn der Zugriff in Schleifen über eine Variable erfolgt. Ein Beispiel soll zeigen, wie man alle Quadratzahlen von 1 bis 20 in ein Array packt.

      int[] quadratZahlen = new int[20];
      for (int i = 0; i < 20; i++)
      {
          quadratZahlen[i] = (i+1) * (i+1);
      }
            
Mehrdimensionale Arrays
Man kann auch zwei- oder mehrdimensionale Arrays anlegen. Sinnvoll ist dies etwa bei zweidimensionalen Spielfeldern, beim GameOfLife etc.

      int[][] zweiDimArray = new int[30][30];
      double[][][] dreiDimArray = new double[10][10][10];
      double irgendeinWert = dreiDimArray[2][3][0];
            
Größe eines Arrays erfragen
Man kann in Java die Größe eines Arrays erfragen. Achtung, das ist nicht für alle Sprachen typisch. Normalerweise merkt man sich die Größe in einer separaten Variablen.

      int groesse = meinArray.length;
            
Zur Beachtung