Java | 配列の連結

Java Java
スポンサーリンク

Javaで「2つの配列を連結して1つにする」方法を、初心者向けにやさしく解説しつつ、具体的な例題で理解していきましょう。


1. 配列の連結って何?

配列の連結とは、簡単にいうと 2つの配列を順番につなげて1つの配列にすること です。

例えば:

int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5};
Java

これを連結すると:

int[] arr3 = {1, 2, 3, 4, 5};
Java

になります。


2. Javaで配列を連結する方法

Javaには「配列同士を直接つなげる関数」はありません。その代わり、System.arraycopy を使って 手動でコピーしてくっつける ことができます。


2-1 System.arraycopy の使い方

System.arraycopy(コピー元配列, コピー元の開始位置,
                 コピー先配列, コピー先の開始位置,
                 コピーする要素の数);
Java
  • コピー元配列:コピーしたい元の配列
  • コピー元の開始位置:元配列の何番目からコピーするか(0から始まる)
  • コピー先配列:コピー先の配列
  • コピー先の開始位置:先頭の何番目からコピーするか
  • コピーする要素の数:何個コピーするか

2-2 配列連結の手順

  • 2つの配列を用意する
int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5};
Java
  • 新しい配列を作る(長さは2つの配列の合計)
int[] arr3 = new int[arr1.length + arr2.length];
Java
  • System.arraycopy でコピー
// arr1をコピー
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
// arr2をコピー
System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);
Java
  • 完成!
    arr3{1, 2, 3, 4, 5} になります。

3. 例題:成績表をまとめる

課題

クラスAとクラスBのテスト点数を1つにまとめて平均点を出したい。

int[] classA = {80, 90, 75};
int[] classB = {60, 85, 70};
Java

解答例

import java.util.Arrays;

public class ArrayConcatExample {
    public static void main(String[] args) {
        int[] classA = {80, 90, 75};
        int[] classB = {60, 85, 70};

        // 連結用配列を作る
        int[] allScores = new int[classA.length + classB.length];

        // classA をコピー
        System.arraycopy(classA, 0, allScores, 0, classA.length);
        // classB をコピー
        System.arraycopy(classB, 0, allScores, classA.length, classB.length);

        // 配列の中身を確認
        System.out.println("全員の点数: " + Arrays.toString(allScores));

        // 平均を計算
        int sum = 0;
        for (int score : allScores) {
            sum += score;
        }
        double average = sum / (double) allScores.length;
        System.out.println("全員の平均点: " + average);
    }
}
Java

実行結果

全員の点数: [80, 90, 75, 60, 85, 70]
全員の平均点: 76.66666666666667

4. ポイントまとめ

  • 配列は固定サイズなので、2つを連結するには 新しい配列を作ってコピーする 必要があります。
  • System.arraycopy の引数を間違えないように注意(どこから、どこへ、何個コピーするか)。
  • コピー後、元の配列は変わらない(参照の話を理解しておくと便利)。
  • 小さい配列で練習して、コピーの挙動を確認すると理解が早いです。

💡 補足
慣れてきたら、ArrayList を使う方法でもっと簡単に配列の連結ができます。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました