So kopieren Sie ein 2D-Array in Java
Frage:
Sie haben ein 2D Array namens Matrix, das Sie zur Bearbeitung in eine lokale Variable in einer Methode kopieren möchten. Was ist der effizienteste und fehlersicherste Weg, eine vollständige Kopie zu erstellen?
Antwort:
Es gibt zwei empfohlene Möglichkeiten, ein 2D-Array in Java zu kopieren:
Verwendung von clone():
Die Methode clone() erstellt ein neues Array mit der gleichen Größe und dem gleichen Inhalt wie das Original. Für 2D-Arrays müssen Sie jede einzelne Zeile klonen:
<code class="java">int[][] myInt = new int[matrix.length][]; for (int i = 0; i < matrix.length; i++) myInt[i] = matrix[i].clone();</code>
Verwenden von System.arraycopy():
Die Methode System.arraycopy() kann ebenfalls verwendet werden Wird zum Kopieren eines 2D-Arrays verwendet. Es erfordert das Erstellen eines neuen Arrays und das manuelle Kopieren jedes Elements:
<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>
Vorteile:
Beide Methoden sind schneller und weniger fehleranfällig als das manuelle Kopieren des Arrays. System.arraycopy() ist besonders effizient, da es in nativem Code implementiert ist.
Hinweis:
In manchen Fällen benötigen Sie möglicherweise nur eine flache Kopie des Arrays , wobei die geänderten Elemente in der Kopie im ursprünglichen Array widergespiegelt werden. Für eine flache Kopie können Sie das Array einfach direkt zuweisen, z. B. int[][] myInt = Matrix;. Für Bearbeitungszwecke wird dies jedoch nicht empfohlen.
Das obige ist der detaillierte Inhalt vonWie kann man ein 2D-Array in Java effizient und sicher kopieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!