ホームページ >Java >&#&チュートリアル >Java で 2D 配列のディープ コピーを実行するにはどうすればよいですか?

Java で 2D 配列のディープ コピーを実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-21 17:34:11720ブラウズ

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

Java での 2D 配列のディープ コピー: 総合ガイド

2D 配列で .clone() を使用すると、浅いコピーが作成される可能性があります。予期しない動作が発生する可能性があります。元の配列の新しい独立したコピーを作成するディープ コピーを実行するには、より徹底的なアプローチが必要です。

System.arraycopy を使用した反復ディープ コピー

1 つのアプローチ2D ブール配列をディープ コピーするには、それを反復処理し、System.arraycopy を使用して各行を新しい配列にコピーします。これには、新しい 2D 配列の作成と元の配列の反復処理が含まれ、各行を要素ごとに新しい配列の対応する行にコピーします。

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;
}

これらの手順に従うことで、2D ブール値のディープ コピーを効果的に作成できます。 Java の配列を使用して、一方の配列に加えられた変更が他方の配列に影響を及ぼさないようにします。

以上がJava で 2D 配列のディープ コピーを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。