Tiefenkopieren von 2D-Arrays in Java
In Java wird durch das Klonen eines 2D-Arrays mit der Methode clone() keine tiefe Kopie erstellt. Daher können Änderungen an geklonten Arrays unbeabsichtigt Auswirkungen auf das ursprüngliche Array haben. In diesem Artikel werden Methoden zum Erstellen einer tiefen Kopie eines booleschen 2D-Arrays untersucht.
Iterieren über das Array
Ein Ansatz besteht darin, manuell über das Array zu iterieren und ein neues zu erstellen Array durch Kopieren der Werte. Für jedes innere Array können Sie System.arraycopy() verwenden, um eine tiefe Kopie sicherzustellen.
Verwenden von Java 6 Arrays.copyOf()
Wenn Sie Java verwenden 6 oder höher sollten Sie die Verwendung der Methode Arrays.copyOf() in Betracht ziehen. Diese Methode kann verwendet werden, um eine tiefe Kopie von Arrays primitiver Typen zu erstellen, einschließlich boolescher Arrays:
public static boolean[][] deepCopy(boolean[][] original) { if (original == null) { return null; } final boolean[][] result = new boolean[original.length][]; for (int i = 0; i < original.length; i++) { result[i] = Arrays.copyOf(original[i], original[i].length); } return result; }
Dieser Code iteriert über das ursprüngliche Array, erstellt ein neues Array für jedes innere Array und verwendet Arrays.copyOf (), um die Werte zu kopieren. Dadurch wird die Erstellung einer tiefen Kopie sichergestellt, bei der Änderungen am neuen Array keine Auswirkungen auf das ursprüngliche Array haben.
Das obige ist der detaillierte Inhalt vonWie kopiere ich ein boolesches 2D-Array tief in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!