在 Java 中操作多維數組時,經常需要建立現有數組的副本。了解複製此類數組的最佳方法對於維護資料完整性和避免陷阱至關重要。
在給定的場景中,整數的二維數組(矩陣)將被複製到局部變數 myInt 中以進行編輯目的。雖然手動方法是可行的,但它可能容易出錯且效率低下。
相反,Java 提供了兩種建議的複製2D 數組的技術:使用clone() 或System.arraycopy ().
clone() 方法建立數組的淺表副本,其中原始數組和副本引用相同的底層元素。對於像矩陣這樣的二維數組,這涉及:
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) myInt[i] = matrix[i].clone();</code>
這種方法很簡單,但只建立引用的副本,而不是元素本身。如果matrix中的任何元素被修改,myInt中對應的元素也會受到影響。
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>
此方法需要更多工作,因為它為每一行建立新數組,但它確保 myInt 是一個獨立的副本。對 myInt 進行的任何修改都不會影響矩陣。
雖然可以手動複製 2D 數組,但強烈建議使用 clone() 或 System.arraycopy() 方法以提高效率、準確、方便。這可確保複製的陣列 (myInt) 與原始陣列(矩陣)正確隔離,從而允許獨立修改,而不會產生意外副作用的風險。
以上是如何在 Java 中高效率地複製二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!