Obwohl das Kopieren nach einer sehr einfachen Aktivität klingt, ist es etwas komplexer, als den Wert des Arrays einer anderen deklarierten Variablen dieses Typs zuzuweisen.
Arrays kopieren
Als Teil der Logik unserer Programme müssen wir wahrscheinlich irgendwann ein Array in eine andere Variable kopieren , um mit den Elementen in einer anderen Instanz des Programms zu arbeiten, wie wir am Anfang der Zuweisung der Variablen erwähnt haben, die das Array enthält in einem anderen Fall ist es nicht die richtige Lösung.
Nehmen wir an, wir erledigen die Aufgabe folgendermaßen:
varArrar2 = varArray1;
In diesem Fall gibt es keinen syntaktischen Fehler, so dass die Anweisung problemlos funktioniert. Selbst wenn wir versuchen, varArray2 auszuführen, werden wir die Werte abrufen , von denen wir wissen, dass sie in varArray1 vorliegen . Sie werden fragen, wo das Problem dann liegt Java hat den Verweis auf den Inhalt des ersten Arrays kopiert. Wenn wir also eine der beiden Änderungen vornehmen, werden beide Änderungen sehen.
Wie wir sehen, ist dies keine sehr effektive Methode, es sei denn, wir möchten die Referenz effektiv kopieren.
Verwenden einer Schleife
Dies ist die einfachste Methode von allen, obwohl sie ein wenig mühsam ist, erfüllt sie das Ziel korrekt und ermöglicht es uns, ein neues Array zu erhalten, das die Kopie des Originals wäre und völlig unabhängig davon. Um diese Kopie zu erstellen, werden wir Folgendes tun :
int [] varArray1 = {2, 3, 1, 5, 10}; int [] varArray2 = new int [varArray1.length]; für (int i = 0; i <varArray1.length; i ++) { varArray2 [i] = varArray1 [i]; }
Wie wir sehen, ist es sehr einfach, wir haben unser erstes Array mit einer Anzahl von Werten, die bereits in seinem Inhalt zugewiesen sind, wir erstellen ein zweites Array und wir geben an, dass seine Dimension die Länge des ursprünglichen Arrays sein wird und schließlich mit einem for-Zyklus, den wir unserem zuweisen werden Neues Array Der Wert, der der Position des ersten Array-Zyklus entspricht.
Verwenden der Arraycopy-Methode
Eine einfachere Methode, die etwas weniger Code benötigt, ist die statische Arraycopy- Methode. Diese Methode verstößt gegen die Java- Namenskonvention, funktioniert jedoch ordnungsgemäß. Um sie zu verwenden, müssen wir Folgendes tun:
System.arraycopy (varArray1, varArray1_pos, varArray2, varArray2_pos, length);
Wie wir in einer einzelnen Zeile sehen, lösen wir das Problem. Die Methode erhält in ihrem ersten Argument das Array, das wir kopieren wollen, dann die Anfangsposition, von der wir kopieren wollen, dann das Zielarray der Kopie, ihre Anfangsposition und schließlich das Länge der Kopie:
Schließlich haben wir festgestellt, dass das Kopieren eines Arrays mit den in diesem Lernprogramm beschriebenen Methoden relativ einfach ist, obwohl es nicht so einfach ist wie das Zuweisen von Variablen.