主な内容の要点
Javaには「配列を連結する専用メソッド」はありませんが、System.arraycopy を使えば2つの配列をつなげて新しい配列を作ることができます。
ポイント解説
- Java標準には「配列連結メソッド」がない
文字列なら+で結合できますが、配列はそうはいきません。自分で新しい配列を用意してコピーする必要があります。 System.arraycopyメソッドを使う
書式は次の通りです:
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Javasrc : コピー元の配列srcPos : コピー開始位置(コピー元)dest : コピー先の配列destPos : コピー開始位置(コピー先)length : コピーする要素数
- 手順はシンプル
- まず「コピー元配列の要素数の合計」を持つ新しい配列を作る
System.arraycopyを使って、最初の配列をコピー- 続けて2つ目の配列をコピー
- サンプルコード
import java.util.Arrays;
class Sample {
public static void main(String[] args) {
int[] src1 = {28, 14, 35, 19};
int[] src2 = {17, 40, 23};
// 新しい配列を作成(要素数は合計)
int[] dst = new int[src1.length + src2.length];
// 1つ目の配列をコピー
System.arraycopy(src1, 0, dst, 0, src1.length);
// 2つ目の配列をコピー
System.arraycopy(src2, 0, dst, src1.length, src2.length);
// 結果を表示
System.out.println(Arrays.toString(dst));
}
}
Java出力例:
[28, 14, 35, 19, 17, 40, 23]
- 注意点
- コピー範囲を間違えると
IndexOutOfBoundsExceptionが出る - 型が合わないと
ArrayStoreExceptionが出る nullを渡すとNullPointerExceptionが出る
- コピー範囲を間違えると
初心者へのアドバイス
- 「配列をつなげたい」と思ったら、新しい配列を作ってコピーするのが基本。
System.arraycopyは「コピー専用の便利メソッド」と覚えておくと良いです。- 慣れてきたら、
ListやArrayListを使うともっと簡単に連結できます。
