Freie Scripten und Tutorials erstellt von Roland Geyer       Startseite | Gästebuch

Array

Eine Sonderform in Java nehmen die Arrays ein. Ein Array ermöglicht eine geordnete Ansammlung von Werten, die nach erfolgter Sortierung entsprechend ausgewertet werden können. Ein Array ist eine Klasse, die wie ein elementarer Datentyp verwendet wird. Von einem Array können daher keine Objekte erzeugt werden. Damit erfüllt das Array die Anforderung, dass Werte keine Identitäten besitzen dürfen.

Array sind eine eigene Klasse und werden durch zwei eckige Klammern, nach Nennung des Types gesondert bekanntgegeben: int [ ] a;

Zuweisung eines Wertes an das 3. Element des Arrays: a [ 2 ] = 25;

Achtung Zählung beginnt bei 0!

Da das Array eine Klasse ist, befinden sich die möglichen Operationen des Arrays in der Beschreibung der API. API: java.util.Arrays
Anzahl der Elemente abfragen: a.length;
Arrays werden nur innerhalb ihrer gültigen Länge zur Verfügung gestellt. Alle Zugriffe außerhalb des Indexes erzeugt einen Fehler und unterbrechen das Programm.

Vom System wird eine eigene Kopierfunktion für Arrays zur Verfügung gestellt. API: java.lang.System.arrayCopy,

Arrays, String und Objekte können nur auf Ihre Referenzen verweisen! Damit während des Aufrufes, die Werte, die einer Funktion übergeben werden, unverändert bleiben, werden nur die Kopien der Werte übergeben. Keine bzw. eine leere Referenz heißt null und bricht das Programm ab. Einen Zuweisung auf eine Referenz kopiert lediglich den Verweis auf diese Referenz in diese Variable! Es zeigt also ein anderes Objekt auch auf diesen Wert! Achtung wird dieser Wert geändert, betrifft das beide Objekte!!! Ein Objekt, das das Interface Clonable implementiert, kann seine Attributte mit den Werten und seinen Methoden mit clone() kopieren. API: java.lang.Object. Für das Vergleichen der Werte wird meistens eine equals() Methode in der entsprechenden Klasse zur Verfügung gestellt.

Demonstration des Side Effektes

Es wird ein Array angelegt und die Klasse Addition aufgerufen, die eine Addition durchführt. Da die Methode Addition den Rückgabetyp void besitzt, kann sie eigentlich nichts ändern, da sie nichts zurückgeben kann, aber:

public class Test {
 static void ausgeben(int[] werte,int a){
    for(int i=0;i<werte.length;i++){
      System.out.println("Wert "+i+": "+werte[i]);
    }
     System.out.println();

  }

  public static void main(String[] args) {
    int a = 3;
    int[] myArray = {2,3,4,5};
    ausgeben(myArray,a);
    new Addition().durchfuehren(myArray,a);
    System.out.println("Alle Werte des Array um "+ a + " erhöht.\n");
		
    //zweite Ausgabe des Array, wurde OHNE Zuweisung verändert!
    ausgeben(myArray,a); 
  }
}

Die Klasse Addition erhöht alle Werte eines Array um einen bestimmten Wert:

public class Addition {
  void durchfuehren(int[] werte,int a){
    //soll das hereinkommende Original Objekt
    //nicht direkt verändert werden können,
    //muss es zuerst dupliziert werden!!
		
    //alle Werte um 3 erhöhen!
    for(int i=0;i<werte.length;i++){
      werte[i] += a;
    }

    //offiziell kann diese Methode nichts ändern
    //da Rückgabetyp void!!
  }
}

Ausgabe des Programms:

Wert 0: 2
Wert 1: 3
Wert 2: 4
Wert 3: 5

Alle Werte des Array um 3 erhöht, obwohl kein Rückgabewert möglich!!!!.

Wert 0: 5
Wert 1: 6
Wert 2: 7
Wert 3: 8

Mehrdimensionale Arrays erhält man durch weitere Verweise auf ein Array. In Java wird das durch eine weitere eckige Klammer definiert.
Beispiel: String [0][2] familienname verweist auf den Wert: "Roland".



Weitere freie Tutorials: Rhetorik & Kommunikation Typografie & Layout Bildbearbeitung mit Photoshop oder GIMP Vektorgrafik mit Illustrator, FreeHand, Corel Draw oder Inkscape Layout mit Indesign oder Scribus Druckvorstufe GoLive Html JavaScript Flash & ActionScript Director & Lingo Assembler DOS Java objektorientiert Perl Word Excel Access PowerPoint Outlook Betriebssystem