Heim  >  Artikel  >  Java  >  Wie erstelle ich eine tiefe Kopie eines zweidimensionalen Arrays in Java?

Wie erstelle ich eine tiefe Kopie eines zweidimensionalen Arrays in Java?

DDD
DDDOriginal
2024-11-01 06:18:02360Durchsuche

How to Create a Deep Copy of a Two-Dimensional Array in Java?

Zweidimensionale Arrays in Java kopieren

Das Kopieren mehrdimensionaler Arrays in Java kann schwierig sein, da durch die Zuweisung eines Arrays zu einem anderen lediglich eine Referenz erstellt wird auf die Originaldaten und nicht auf eine echte Kopie. Um ein echtes Duplikat zu erstellen, müssen Sie neuen Speicher zuweisen und die Elemente einzeln kopieren.

In Ihrem Fall haben Sie zwei Methoden, old() und keepold(), um das aktuelle Array in old und umgekehrt zu kopieren umgekehrt. Wenn Sie jedoch die aktuelle Version aktualisieren, werden die Änderungen auch in der alten Version widergespiegelt, da beide auf dieselben zugrunde liegenden Daten verweisen.

Um eine echte Kopie zu erstellen, können Sie die folgenden Schritte ausführen:

  1. Erstellen Sie ein neues Array: Weisen Sie ein neues zweidimensionales Array mit den gleichen Abmessungen wie das Original zu.
  2. Kopieren Sie die Elemente: Durchlaufen Sie das ursprüngliche Array und weisen Sie es zu jedes Element an die entsprechende Position im neuen Array.

Mithilfe der Streams-API (Java 8) können Sie diesen Prozess vereinfachen:

<code class="java">int[][] copy = Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new);</code>

Diese Zeile verwendet die Funktion „map()“ -Methode zum Erstellen eines neuen Arrays für jede Zeile, dann die clone()-Methode zum Kopieren jeder Zeile und schließlich die toArray()-Methode zum Erstellen eines neuen zweidimensionalen Arrays aus den geklonten Zeilen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine tiefe Kopie eines zweidimensionalen Arrays in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn