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

Java Java
スポンサーリンク

初心者向けに 配列(Array)と ArrayList の違い を図解で整理します。ASCII 図でイメージしやすくしてみます。


1. 基本イメージ

普通の配列(Array)           ArrayList
-------------------           ------------------------
固定サイズ                   可変サイズ
int[] nums = new int[3];      ArrayList<Integer> list = new ArrayList<>();

配列のイメージ

配列 nums (int[3]):
    +----+----+----+
    | 10 | 20 | 30 |
    +----+----+----+
index: 0    1    2
  • サイズは 3 に固定
  • 新しい要素を追加したい場合は、新しい配列を作り直す必要がある

ArrayList のイメージ

ArrayList list:
     +----+----+----+----+
     | 10 | 20 | 30 | 40 |  <- add() で自由に追加できる
     +----+----+----+----+
index: 0    1    2    3
  • サイズは 可変
  • .add() で自由に追加
  • .remove(index) で要素を削除すると自動で詰めてくれる

2. メモリの違いイメージ

Array (固定長)               ArrayList (可変長)
------------------          -----------------------
[ 10 ][ 20 ][ 30 ]          [ 10 ][ 20 ][ 30 ][ 40 ]
                             (内部的には Object[] で管理)
  • ArrayList は内部で 配列を使っているが、容量が足りなくなると自動で拡張 される
  • だから使いやすいけど、内部でコピーが発生する場合がある

3. 主な違いまとめ表

特徴配列 (Array)ArrayList
サイズ固定可変
要素の型プリミティブ型も可 (int, double, etc.)オブジェクト型のみ (Integer, Double, etc.)
追加・削除不可(新しい配列作成が必要)add(), remove() で自由に可能
メモリ効率高い少し低い(内部拡張でコピーあり)
使用例数学計算、固定データリスト管理、動的データ

💡 ポイント

  • 配列は「決まったサイズで高速に処理したい時」
  • ArrayList は「要素数が変わるリストを扱うとき」に便利

  • 左側:配列 (Array)
    • サイズ固定
    • 要素追加不可
    • コピーが必要 (System.arraycopy)
  • 右側:ArrayList
    • サイズ可変
    • 要素追加・削除が簡単 (add, remove)
    • 連結も addAll で一発

この図を見れば「配列は箱の大きさが決まっている」「ArrayListは伸び縮みできる箱」というイメージがつかみやすいと思います。

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