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

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

Barbara Streisand
Barbara Streisand原創
2024-12-21 17:34:11811瀏覽

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

Java 中2D 陣列的深度複製:綜合指南

在2D 陣列上使用.clone() 可能會導致淺複製,這可能會導致淺複製,這可能會導致意外的行為。要執行深度複製以建立原始數組的新獨立副本,需要更徹底的方法。

使用System.arraycopy 進行迭代深度複製

一種方法深度複製2D 布林數組的方法是迭代它並使用System.arraycopy 將每一行複製到新數組中。這涉及創建一個新的二維數組,然後迭代原始數組,將每一行逐個元素複製到新數組中的相應行中。

Java 6 選項:java.util.Arrays#copyOf

如果您使用的是Java 6 或更高版本,您可以使用java.util.Arrays# copyOf 方法來簡化此過程。此類別提供了複製數組的便捷方法。

範例程式碼:

以下程式碼範例示範如何使用迭代執行2D 布林陣列的深度複製方法:

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

透過以下步驟,您可以有效地在Java,確保對一個陣列所做的變更不會影響另一個陣列。

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

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