Java 中 2D 数组的深度复制:综合指南
在 2D 数组上使用 .clone() 可能会导致浅复制,这可能会导致意外的行为。要执行深度复制以创建原始数组的新独立副本,需要更彻底的方法。
使用 System.arraycopy 进行迭代深度复制
一种方法深度复制 2D 布尔数组的方法是迭代它并使用 System.arraycopy 将每一行复制到新数组中。这涉及创建一个新的二维数组,然后迭代原始数组,将每一行逐个元素复制到新数组中的相应行中。
Java 6 选项:java.util.Arrays#copyOf
如果您使用的是 Java 6 或更高版本,您可以使用 java.util.Arrays#copyOf 方法来简化此过程。此类提供了一种复制数组的便捷方法。
示例代码:
以下代码示例演示了如何使用迭代执行 2D 布尔数组的深度复制方法:
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; }
通过以下步骤,您可以有效地在Java,确保对一个数组所做的更改不会影响另一个数组。
以上是如何在 Java 中执行二维数组的深度复制?的详细内容。更多信息请关注PHP中文网其他相关文章!