Java – Arrays kopieren

Sobald wir die Konzepte des Arrays beherrscht haben und wissen, wie man eines füllt und ausführt, müssen wir sicherlich auch Kopien der Arrays erstellen , da wir den Inhalt dieses Arrays oft verarbeiten müssen, ohne ein Original zu ändern, das wir für andere Zwecke verwenden.

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.

Richtige Methode zum Kopieren eines Arrays
Es gibt verschiedene Möglichkeiten, eine Kopie eines Arrays zu erstellen , indem Sie eine Schleife verwenden, die das erste Array durchläuft und die Werte dem zweiten Array zuweist, die in der System- Klasse enthaltene statische Methode arraycopy verwenden und schließlich die Klon-Methode verwenden Letzteres ist etwas weiter fortgeschritten als das, was wir hier sehen.

Verwenden einer Schleife

See also  So konvertieren Sie Word- oder Excel-Dokumente in Google Text & Tabellen

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:

java_copiando_arrays.jpg

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.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *