演習(配列のコピー)の回答例

出典: CourseWiki

 
public class ArrayCopy {
    public static void main(String[] args) {
        int[] data = new int[3];
        data[0] = 10;
        // 実は data2 = data.clone(); でコピーできる
        int[] data2 = copyArray(data);
        data2[1] = 20;
        int[] data3 = copyArray(data2);
        data3[2] = 30;
        System.out.println("data  = " + java.util.Arrays.toString(data));
        System.out.println("data2 = " + java.util.Arrays.toString(data2));
        System.out.println("data3 = " + java.util.Arrays.toString(data3));
    }
 
    // 指定された配列をコピーした別の配列を返す
    private static int[] copyArray(int[] data) {
        // 同じ大きさの配列を確保
        int[] copy = new int[data.length];
        // コピー
        for (int i = 0; i < data.length; i++) {
            copy[i] = data[i];
        }
        return copy;
    }
}

コメントにも書いてあるように,実は Java では配列のコピーは 配列名.clone() と書くことで得ることができます.

ナビゲーション