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:
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!