Javaで二次元配列をコピーする

Arrays.copyOf() は、Java の Arrays クラスの静的メソッドであり、1 次元配列をコピーできます。このメソッドには 2 つのオーバーロード バージョンがあり、1 つは配列全体をコピーするもの、もう 1 つは配列の一部をコピーするものです。構文は次のとおりです。

public static <T> T[] copyOf(T[] original, int newLength)

このメソッドは 1 次元配列をコピーできますが、2 次元配列はコピーできません。2 次元配列をコピーしたい場合は、ループを使用して 2 次元配列を横断し、Arrays.copyOf() を使用してコピーする必要があります。 1次元配列をコピーします。

int[][] original = {
    
    {1,2,3},{4,5,6}};
int[][] copy = new int[original.length][];
for (int i = 0; i < original.length; i++) {
    copy[i] = Arrays.copyOf(original[i], original[i].length);
}

Java8以降を使用している場合は、Streams APIを使用して2次元配列をコピーできます

int[][] copy = Arrays.stream(original)
                       .map(int[]::clone)
                       .toArray(int[][]::new);

上記の例では、ディープ コピーを使用して 2D 配列をコピーしたため、元の配列を変更してもコピーされた配列には影響せず、その逆も同様であることに注意してください。

おすすめ

転載: blog.csdn.net/m0_61594817/article/details/128731091
おすすめ