Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


2.15.6

Kopieren von Arrays


Da Array-Typen Verweise sind, reicht es zum physikalischen Kopieren nicht, eine einfache Zuweisung vorzunehmen. Zum tatsächlichen Kopieren kann eine der Methoden Object.clone() oder System.arraycopy() verwendet werden. Die folgenden Anweisungen deklarieren die Arrays a und b, wobei beide Arrays auch initialisiert werden:
  int a[] = {1, 2, 3, 4, 5};
  int b[] = new int[5];

  b = a;
  a[0] = 55;
  System.out.println(b[0]);
Durch die Zuweisung b = a wird das Array a nicht im eigentlichen Sinne kopiert, sondern b verweist danach auf ein und dieselben Elemente wie a. Änderungen an den Elementen von a wirken sich also auch bei b aus. In diesem Beispiel wird daher 55 ausgegeben. Die einfachste Möglichkeit, ein Array komplett zu kopieren, bietet die Methode clone(). Da sie in der Klasse Object definiert ist, ist sie auch bei allen Arrays verfügbar. Falls nur ein bestimmter Bereich des Arrays kopiert werden soll, ist die Methode System.arraycopy() zu verwenden. Ihr werden folgende Parameter übergeben: Zum vollständigen Kopieren kann man also eine der beiden folgenden Varianten nehmen:
   b = a.clone();
   System.arraycopy(a, 0, b, 0, a.length);
Bei Arrays von Objekten und somit auch geschachtelten Arrays ist zu beachten, dass die Arrays sowohl bei Object.clone() als auch bei System.arraycopy() flach kopiert werden, d. h., es werden nur die Objektreferenzen kopiert und nicht die Objekte selbst.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.