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

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-19 02:55:101055Durchsuche

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

Tiefenkopieren eines 2D-Arrays in Java

Die Methode java.lang.clone() erstellt eine flache Kopie eines Arrays, d. h es dupliziert nur den Verweis auf das ursprüngliche Array. Das Ändern der Kopie wirkt sich weiterhin auf das ursprüngliche Array aus. Eine tiefe Kopie hingegen erstellt eine völlig separate Instanz des Arrays mit einem eigenen Satz von Elementen.

Durchführen einer tiefen Kopie

Um a Wenn Sie eine tiefe Kopie eines booleschen[][]-Arrays erstellen, können Sie über das Array iterieren und für jede Zeile ein neues Array erstellen:

boolean[][] deepCopy(boolean[][] original) {
    if (original == null) {
        return null;
    }

    boolean[][] result = new boolean[original.length][];
    for (int i = 0; i < original.length; i++) {
        result[i] = Arrays.copyOf(original[i], original[i].length);
    }
    return result;
}

Für Java-Versionen davor Java 6, Sie können System.arraycopy wie unten gezeigt verwenden:

boolean[][] deepCopy(boolean[][] original) {
    if (original == null) {
        return null;
    }

    boolean[][] result = new boolean[original.length][];
    for (int i = 0; i < original.length; i++) {
        result[i] = new boolean[original[i].length];
        System.arraycopy(original[i], 0, result[i], 0, original[i].length);
    }
    return result;
}

Das obige ist der detaillierte Inhalt vonWie führe ich eine tiefe Kopie eines 2D-Booleschen Arrays in Java durch?. 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