プログラミング学習日記

プログラミング学習時のメモ帳。

Java arraycopy

間違っている場所あったら優しく教えてね

arraycopy

配列の一部分をコピーしたい時に使える.
インデックスや長さを指定することができる.

usage

System.arraycopy( コピー元の配列 , 
                  配列のインデックス , 
                  コピー先の配列 , 
                  コピー先の開始インデックス , 
                  コピーする要素数 ) ; 

0インデックスで動作します

example

public class Main {
    public static void main(String[] args) {
        int[] arr = { 10, 20, 30, 40, 50 };
        int[] brr = new int[5];
        System.arraycopy(arr, 2, brr, 2, 2);
        for (int a : brr) {
            System.out.println(a);
        }
    }
}
//出力  0  0  30  40  50
//初期化していない場所は0で初期化される

お遊び

コピー元とコピー先を同じ配列にしてコピー位置を変更してみる.

public class Main {
    public static void main(String[] args) {
        int[] arr = { 10, 20, 30, 40, 50 };
        System.arraycopy(arr, 3, arr, 0, 2);
        for (int a : arr) {
            System.out.println(a);
        }
    }
}
// 出力  40 50 30 40 50

配列の要素を一つずらしてみる.
arraycopy関数内でarrayIndexOutOfBoundExceptionのエラーが怒らないように注意する必要がある

public class Main {
    public static void main(String[] args) {
        int[] arr = { 10, 20, 30, 40, 50 };
        System.arraycopy(arr, 0, arr, 1, arr.length - 1);
        for (int a : arr) {
            System.out.println(a);
        }
    }
}
//出力 10 10 20 30 40

API

docs.oracle.com

ブログを見ていただきありがとうございました