Java で配列のコピー
配列の値をコピーする
配列の値のみをコピーしたいとき、"a = b"のように書くと、aの値を変えた時にbの値も変わってしまうことがあると思います。
値だけをコピーしたい場合、System.arraycopyやcloneを使うことで解決します。
コード
import java.util.Arrays; public class Sample { public static void main(String[] args) { int []a = new int[] {1, 2, 3}; int []b = a.clone(); int []c = new int[3]; System.arraycopy(a, 0, c, 0, 3); b[1] = 20; a[0] = 10; c[2] = 30; System.out.println("a = " + Arrays.toString(a)); System.out.println("b = " + Arrays.toString(b)); System.out.println("c = " + Arrays.toString(c)); } }
Sytem.arrayの使い方は,
public static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length)
パラメータ:src - 転送元配列。srcPos - ソース配列の開始位置。dest - 転送先配列。destPos - 転送先データ内の開始位置。length - コピーされる配列要素の数。
と書いてありました。