6.5.3 Erzeugen eines Feldes mit den new-Operator
 
Deklaration mit new In den wenigsten Fällen macht es Sinn, vom Programmierer über den Quelltext die Daten in ein Feld einzutragen zu lassen. In der Regel sollen die einzelnen Plätze während das Programm läuft belegt werden können. Andererseits muss beim Anlegen eines Feldes festgelegt werden, wie viel Platz dieses im Speicher beansprucht. Wie kann man beiden Interessen gerecht werden? Mit der Zeile

boolean[] ungerade = new boolean[5];

wird ein Feld mit 5 Plätzen für boolsche Werte deklariert und initialisiert. Werte sind noch nicht eingetragen. Alternativ lässt sich die Deklaration und Initialisierung auch auf zwei Zeilen verteilen. Das ist insbesondere dann wichtig, wenn Deklaration und Initialisierung an verschiedenen Stellen vorgenommen werden sollen.

boolean[] gerade;
...
gerade = new boolean[5];
 

Download:
Feld3.java
public class Feld3{
  public static void main(String[] args){
    boolean[] gerade = new boolean[5];
    for (int i=0;i<3;i++) {
      gerade[i]=(i%2==0);
    }
    for (int i=0;i<gerade.length;i++){
      System.out.println(gerade[i]);
    }
  }
}
 

Das Programm trägt an den Plätzen, deren Platznummern gerade sind den Wert true ein. Die Ausgabe liefert:

true
false
true
false
false

Ein Blick auf die Schleife zeigt, dass nur die ersten drei Plätze, also die mit den Platznummern 0 bis 2 belegt werden; die Ausgabe liefert aber die Werte aller deklarierter Plätze . Wir erkennen daran, dass nicht explizit initialisierte Plätze mit false vorinitialisiert sind.

Wie flexibel man mit einem Feld umgehen kann, zeigt eine Implementierung des Algorithmus 'Sieb des Erathostenes', wie wir ihn im Kapitel 6.3 kennen gelernt haben..

 
zu 6.6 Das Sieb des Erathostenes (Implementierung)
zur Startseite www.pohlig.de  (C) MPohlig 2005