Heim > Java > javaLernprogramm > Wie führe ich eine tiefe Kopie eines 2D-Arrays in Java durch?

Wie führe ich eine tiefe Kopie eines 2D-Arrays in Java durch?

Barbara Streisand
Freigeben: 2024-12-21 17:34:11
Original
720 Leute haben es durchsucht

How to Perform a Deep Copy of a 2D Array in Java?

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage