首頁  >  文章  >  Java  >  如何在 Java 中建立二維數組的深拷貝?

如何在 Java 中建立二維數組的深拷貝?

DDD
DDD原創
2024-11-01 06:18:02360瀏覽

How to Create a Deep Copy of a Two-Dimensional Array in Java?

在Java 中複製二維數組

在Java 中複製多維數組可能很棘手,因為將一個數組分配給另一個數組只是創建一個引用原始資料而不是真實副本。要建立真正的副本,您需要分配新的記憶體並單獨複製元素。

在您的情況下,您有兩種方法,old() 和 keepold(),將目前陣列複製到 old 和vice反之亦然。但是,當您更新目前版本時,變更也會反映在舊版本中,因為它們都引用相同的基礎資料。

要建立真實副本,您可以使用下列步驟:

  1. 建立新陣列:指派一個與原始陣列維度相同的新二維陣列。
  2. 複製元素:迭代原始數組並賦值將每個元素移到新數組中的對應位置。

使用streams API(Java 8),您可以簡化此過程:

<code class="java">int[][] copy = Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new);</code>

這一行使用了map()方法為每一行建立一個新數組,然後使用clone() 方法複製每一行,最後使用toArray() 方法從複製的行建立新的二維數組。

以上是如何在 Java 中建立二維數組的深拷貝?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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