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