Java | 配列(Array)と ArrayList の違い

Java Java
スポンサーリンク

では、配列と ArrayList で 連結操作 を同じ例題で比較して図解します。


例題

「クラスAとクラスBの出席リストをまとめる」

1. 配列でやる場合

public class ArrayConcatExample {
    public static void main(String[] args) {
        String[] classA = {"田中", "佐藤", "鈴木"};
        String[] classB = {"高橋", "伊藤"};

        // 連結するには新しい配列を作る必要がある
        String[] allClasses = new String[classA.length + classB.length];

        // classAをコピー
        for(int i = 0; i < classA.length; i++) {
            allClasses[i] = classA[i];
        }

        // classBをコピー
        for(int i = 0; i < classB.length; i++) {
            allClasses[classA.length + i] = classB[i];
        }

        // 出力
        for(String name : allClasses) {
            System.out.println(name);
        }
    }
}
Java

イメージ図(配列の連結)

classA: +----+----+----+       classB: +----+----+
         |田中|佐藤|鈴木|                |高橋|伊藤|
        +----+----+----+               +----+----+

allClasses (新配列):
+----+----+----+----+----+
 |田中|佐藤|鈴木|高橋|伊藤|
+----+----+----+----+----+
  • 配列はサイズ固定なので、連結するには 新しい配列を作ってコピー する必要がある

2. ArrayList でやる場合

import java.util.ArrayList;

public class ArrayListConcatExample {
    public static void main(String[] args) {
        ArrayList<String> classA = new ArrayList<>();
        classA.add("田中");
        classA.add("佐藤");
        classA.add("鈴木");

        ArrayList<String> classB = new ArrayList<>();
        classB.add("高橋");
        classB.add("伊藤");

        // 連結は addAll() で簡単
        ArrayList<String> allClasses = new ArrayList<>();
        allClasses.addAll(classA);
        allClasses.addAll(classB);

        // 出力
        for(String name : allClasses) {
            System.out.println(name);
        }
    }
}
Java

イメージ図(ArrayListの連結)

classA: +----+----+----+
         |田中|佐藤|鈴木|
        +----+----+----+

classB: +----+----+
        |高橋|伊藤|
        +----+----+

allClasses (ArrayList):
+----+----+----+----+----+
 |田中|佐藤|鈴木|高橋|伊藤|
+----+----+----+----+----+
  • .addAll() だけで簡単にまとめられる
  • 元のリストはそのまま残る

3. 配列 vs ArrayList の連結比較

操作配列 (Array)ArrayList
作成new String[size]new ArrayList<>()
連結新しい配列を作ってコピー.addAll() でまとめて追加
サイズ変更不可(コピー必須)可(自動拡張)
コード量多い少ない
可読性やや低い高い

💡 初心者向けポイント

  • 配列は「連結のたびに新しい配列を作る必要がある」
  • ArrayList は「addAll() で直感的にまとめられる」
  • 実務ではデータの追加や結合が多い場合は ArrayList が便利
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました