Deep Copy von 2D-Arrays in Java: Eine umfassende Anleitung
Die Verwendung von .clone() auf einem 2D-Array kann zu flachen Kopien führen, Dies kann zu unerwartetem Verhalten führen. Um eine tiefe Kopie durchzuführen, die eine neue unabhängige Kopie des ursprünglichen Arrays erstellt, ist ein gründlicherer Ansatz erforderlich.
Iteratives Deep Copy mit System.arraycopy
Ein Ansatz Das tiefe Kopieren eines booleschen 2D-Arrays besteht darin, es zu durchlaufen und mit System.arraycopy jede Zeile in ein neues Array zu kopieren. Dazu gehört das Erstellen eines neuen 2D-Arrays und das anschließende Durchlaufen des ursprünglichen Arrays, wobei jede Zeile Element für Element in die entsprechende Zeile im neuen Array kopiert wird.
Java 6-Option: java.util.Arrays#copyOf
Wenn Sie Java 6 oder höher verwenden, können Sie diesen Prozess vereinfachen, indem Sie die Methoden java.util.Arrays#copyOf verwenden. Diese Klasse bietet eine praktische Möglichkeit, Arrays zu kopieren.
Beispielcode:
Das folgende Codebeispiel zeigt, wie eine tiefe Kopie eines 2D-booleschen Arrays mithilfe der Iterative durchgeführt wird Ansatz:
public static boolean[][] deepCopy(boolean[][] original) { if (original == null) { return null; } final boolean[][] result = new boolean[original.length][]; for (int i = 0; i < original.length; i++) { result[i] = Arrays.copyOf(original[i], original[i].length); // For Java versions prior to Java 6 use the next: // System.arraycopy(original[i], 0, result[i], 0, original[i].length); } return result; }
Durch Befolgen dieser Schritte können Sie effektiv tiefe Kopien von 2D-Booleschen Arrays in Java erstellen und so sicherstellen, dass Änderungen vorgenommen werden Änderungen an einem Array wirken sich nicht auf das andere aus.
Das obige ist der detaillierte Inhalt vonWie führe ich eine tiefe Kopie eines 2D-Arrays in Java durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!