Java | ミニ課題(配列の分割→合成→出力) のコード一式

Java Java
スポンサーリンク

初心者が “配列を分割 → 必要な部分を抜き出す → 合成(結合) → 出力” の一連の流れをまとめて理解できる 実践ミニ課題 を作ります。

「整数配列を2つに分割し、一部だけ組み合わせて新しい配列を作って出力する」

仕様

  1. 元の配列(int[] src)を用意する。
  2. 元の配列を 2 つの部分に分割する。
    • 例:前半 / 後半
  3. 前半の一部(0〜2番目)と、後半の一部(1〜3番目)を抜き出す。
  4. それらを結合(新しい配列に合体)する。
  5. 最終的な配列を表示する。

完成イメージ

元配列:

[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
✔ 「配列を加工して新しい配列を作る」という実践的流れ

タイトルとURLをコピーしました