首页 >Java >java教程 >如何在 Java 中执行二维数组的深度复制?

如何在 Java 中执行二维数组的深度复制?

Barbara Streisand
Barbara Streisand原创
2024-12-21 17:34:11789浏览

How to Perform a Deep Copy of a 2D Array in Java?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn