我只是.clone()在2D boolean数组上使用过,以为这是一个深复制。
.clone()
2D boolean
如何执行boolean[][]阵列的深层复制?
boolean[][]
我应该遍历它并执行一系列System.arraycopy的操作吗?
System.arraycopy
是的,你应该遍历2D布尔数组以进行深复制。java.util.Arrays#copyOf如果你使用的是Java 6,请同时查看方法。
java.util.Arrays#copyOf
我建议使用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] = Arrays.copyOf(original[i], original[i].length); // For Java versions prior to Java 6 use the next: // System.arraycopy(original[i], 0, result[i], 0, original[i].length); } return result; }