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

Java Java
スポンサーリンク

では、配列と ArrayList を同じ例題で操作を比較して、違いを図解で整理してみます。


例題

「整数リストに数値を追加して合計を出す」

1. 配列でやる場合

public class ArrayExample {
    public static void main(String[] args) {
        int[] nums = new int[3];
        nums[0] = 10;
        nums[1] = 20;
        nums[2] = 30;

        // 新しい値を追加したい場合 → 新しい配列を作る必要がある
        int[] newNums = new int[4];
        for(int i = 0; i < nums.length; i++) {
            newNums[i] = nums[i];
        }
        newNums[3] = 40; // 追加

        // 合計計算
        int sum = 0;
        for(int n : newNums) sum += n;
        System.out.println("合計: " + sum); // 100
    }
}
Java

イメージ図 (配列)

元の配列 nums[3]:      +----+----+----+
                      | 10 | 20 | 30 |
                      +----+----+----+

新しい配列 newNums[4]: +----+----+----+----+
                      | 10 | 20 | 30 | 40 |
                      +----+----+----+----+
  • ポイント: 配列は固定長なので、追加したいときは「コピーして新しい配列」を作る必要がある

2. ArrayList でやる場合

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(10);
        list.add(20);
        list.add(30);

        // 追加は簡単
        list.add(40);

        // 合計計算
        int sum = 0;
        for(int n : list) sum += n;
        System.out.println("合計: " + sum); // 100
    }
}
Java

イメージ図 (ArrayList)

ArrayList list:
    +----+----+----+----+
    | 10 | 20 | 30 | 40 |
    +----+----+----+----+
index: 0    1    2    3
  • ポイント: .add() だけで自由に追加可能
  • 内部では必要に応じて配列を拡張しているが、ユーザーは気にしなくてOK

3. 比較まとめ図

操作        配列 (Array)                    ArrayList
---------  -----------------------------   -----------------------------
作成        int[] nums = new int[3];        ArrayList<Integer> list = new ArrayList<>();
追加        nums[3] = 40; (不可)           list.add(40);
削除        不可(コピー必須)              list.remove(1);
合計        for 文でループ                   for 文でループ or stream
サイズ変更  不可(新配列を作る)            可(自動拡張)

💡 初心者向けポイント

  • 配列は「サイズ固定」「高速・省メモリ」
  • ArrayList は「サイズ可変」「要素の追加・削除が簡単」
  • 日常的には 動的に変わるデータは ArrayList、計算や固定データは 配列 が向く
Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました