如何在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中文網其他相關文章!