首頁 >Java >java教程 >如何在 Java 中執行二維布林數組的深度複製?

如何在 Java 中執行二維布林數組的深度複製?

Barbara Streisand
Barbara Streisand原創
2024-12-19 02:55:10981瀏覽

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

在Java 中深度複製二維數組

java.lang.clone() 方法創建數組的淺表副本,這意味著它僅複製對原始數組的引用。修改副本仍然會影響原始數組。另一方面,深層複製會建立一個完全獨立的陣列實例,並具有自己的一組元素。

執行深層複製

執行boolean[][] 陣列的深層複製,您可以迭代該陣列並為每一行建立一個新陣列:

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;
}

對於Java 6之前的Java版本,您可以使用System.arraycopy,如下圖:

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;
}

以上是如何在 Java 中執行二維布林數組的深度複製?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn