配列を他の配列に上書きするには、System.arraycopy を使用します。
構文
- (System.arraycopy)
- System.arraycopy( <コピー元配列>, <コピー元開始インデックス>, <コピー先配列>, <コピー先開始インデックス>, <コピーする要素数> )
サンプルソース
例)配列「arr1」の1~4要素を配列「arr2」の1~4要素目に上書きコピーする
1 2 3 4 5 6 7 8 9 10 11 12 |
//コピー元配列 String arr1[] = {"AA", "BB", "CC", "DD", "EE"}; //コピー先配列 String arr2[] = {"aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh"}; //arr1の0番目から4要素分をarr2の0番目以降にコピーする System.arraycopy(arr1, 0, arr2, 0, 4); //コピー後の結果を出力 System.out.println(Arrays.asList(arr1)); System.out.println(Arrays.asList(arr2)); |
- 結果
- [AA, BB, CC, DD, EE] [AA, BB, CC, DD, ee, ff, gg, hh]
備考
- コピー先の要素数よりもコピーする要素数が大きい場合は
例外「java.lang.ArrayIndexOutOfBoundsException」が発生します。