初心者が “配列を分割 → 必要な部分を抜き出す → 合成(結合) → 出力” の一連の流れをまとめて理解できる 実践ミニ課題 を作ります。
「整数配列を2つに分割し、一部だけ組み合わせて新しい配列を作って出力する」
仕様
- 元の配列(
int[] src)を用意する。 - 元の配列を 2 つの部分に分割する。
- 例:前半 / 後半
- 前半の一部(0〜2番目)と、後半の一部(1〜3番目)を抜き出す。
- それらを結合(新しい配列に合体)する。
- 最終的な配列を表示する。
完成イメージ
元配列:
[10, 20, 30, 40, 50, 60, 70, 80]
前半:[10, 20, 30, 40]
後半:[50, 60, 70, 80]
抜き出し:
- 前半 0〜2 →
[10, 20, 30] - 後半 1〜3 →
[60, 70, 80]
合成後:
[10, 20, 30, 60, 70, 80]
完成コード(初心者向け・一歩ずつ実装)
import java.util.Arrays;
public class ArraySplitMerge {
public static void main(String[] args) {
// 1. 元の配列を用意
int[] src = {10, 20, 30, 40, 50, 60, 70, 80};
System.out.println("元の配列: " + Arrays.toString(src));
// 2. 前半と後半に分割(前半: 0〜3, 後半: 4〜7)
int[] firstHalf = Arrays.copyOfRange(src, 0, 4);
int[] secondHalf = Arrays.copyOfRange(src, 4, 8);
System.out.println("前半: " + Arrays.toString(firstHalf));
System.out.println("後半: " + Arrays.toString(secondHalf));
// 3. 前半の一部(0〜2)と後半の一部(1〜3)を抜き出す
int[] partA = Arrays.copyOfRange(firstHalf, 0, 3); // 10,20,30
int[] partB = Arrays.copyOfRange(secondHalf, 1, 4); // 60,70,80
System.out.println("前半の一部: " + Arrays.toString(partA));
System.out.println("後半の一部: " + Arrays.toString(partB));
// 4. それらを結合(合成)
int[] merged = mergeArrays(partA, partB);
// 5. 最終結果を出力
System.out.println("合成結果: " + Arrays.toString(merged));
}
/**
* 2つの配列を結合して新しい配列を作るメソッド
*/
public static int[] mergeArrays(int[] a, int[] b) {
int[] result = new int[a.length + b.length];
// a の中身をコピー
for (int i = 0; i < a.length; i++) {
result[i] = a[i];
}
// b の中身をコピー
for (int i = 0; i < b.length; i++) {
result[a.length + i] = b[i];
}
return result;
}
}
Java実行結果(イメージ)
元の配列: [10, 20, 30, 40, 50, 60, 70, 80]
前半: [10, 20, 30, 40]
後半: [50, 60, 70, 80]
前半の一部: [10, 20, 30]
後半の一部: [60, 70, 80]
合成結果: [10, 20, 30, 60, 70, 80]
この課題で学べること
✔ Arrays.copyOfRange の仕組み
✔ 配列を部分的に取り出すスキル
✔ 配列の結合ロジック(初心者が必ず書けるようになるべき基礎)
✔ メソッドの切り出し(mergeArrays)
✔ 「配列を加工して新しい配列を作る」という実践的流れ
