首頁  >  文章  >  Java  >  如何在Java中高效、安全地複製二維數組?

如何在Java中高效、安全地複製二維數組?

DDD
DDD原創
2024-11-01 12:42:02266瀏覽

How to Efficiently and Safely Copy a 2D Array in Java?

如何在Java 中復制2D 數組

問題:

你有一個2D稱為矩陣的數組,您想要將其複製到方法中的局部變數中以進行編輯。創建完整副本最有效且防錯的方法是什麼?

答案:

在Java 複製二維陣列有兩種建議方法:

使用clone():

clone()方法建立一個與原始陣列大小和內容相同的新陣列。對於二維數組,您需要複製每一行:

<code class="java">int[][] myInt = new int[matrix.length][];
for (int i = 0; i < matrix.length; i++)
    myInt[i] = matrix[i].clone();</code>

使用System.arraycopy():

System.arraycopy() 方法也可以是用於複製二維數組。它需要建立一個新數組並手動複製每個元素:

<code class="java">int[][] myInt = new int[matrix.length][];
for (int i = 0; i < matrix.length; i++) {
  int[] aMatrix = matrix[i];
  int aLength = aMatrix.length;
  myInt[i] = new int[aLength];
  System.arraycopy(aMatrix, 0, myInt[i], 0, aLength);
}</code>

優點:

這兩種方法都比手動複製數組更快且更不容易出錯。 System.arraycopy() 特別有效率,因為它是在本機程式碼中實現的。

注意:

在某些情況下,您可能只需要數組的淺表副本,其中副本中修改的元素反映在原始數組中。對於淺拷貝,您可以直接對數組進行賦值,例如 int[][] myInt = matrix;。但是,不建議出於編輯目的這樣做。

以上是如何在Java中高效、安全地複製二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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