Erstellen tiefer Kopien von 2D-Booleschen Arrays in Java
Problem:
Vermeiden Sie die Verwendung von . clone() beim Bearbeiten von 2D-Booleschen Arrays, da es flache statt tiefe Kopien erstellt Kopien.
Frage:
Wie führe ich eine tiefe Kopie eines 2D-Booleschen Arrays in Java durch?
Antwort:
Iterieren Sie das ursprüngliche Array, um ein neues Array mit unabhängigen Elementen zu erstellen Elemente.
Java 6-Lösung:
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; }
Vor Java 6-Lösung:
// For Java versions prior to Java 6 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] = new boolean[original[i].length]; System.arraycopy(original[i], 0, result[i], 0, original[i].length); } return result; }
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine tiefe Kopie eines 2D-Booleschen Arrays in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!