JavaのListとは?ArrayListで複数のデータを追加・削除する考え方

最終更新日

Schoo Java入門 初級 第8回 ポリモーフィズム・コレクション

ArrayList は、あとから増えたり減ったりする複数のデータを扱いやすくするために使います。名前の一覧、商品一覧、検索結果、入力されたデータの一覧など、実際のプログラムでもよく登場します。

まずは追加・削除・表示まで動くコードで結果を確認し、その後に各操作を読み解きます。Schooの「Java入門 初級【2026年版】」第8回の補足としても、単独の入門記事としても使えます。

Schoo コースページ:Java入門 初級【2026年版】

まずは追加・削除・表示をまとめて動かす

ファイル名を ListExample.java にして、次のコード全体を使います。IDEでは ListExample の main メソッドを実行してください。この例では package 宣言は使いません。

ファイル名:ListExample.java

import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Carol");

        System.out.println("追加後: " + names);
        System.out.println("要素数: " + names.size());

        names.remove("Bob");
        System.out.println("削除後: " + names);
        System.out.println("要素数: " + names.size());

        for (String name : names) {
            System.out.println(name);
        }
    }
}

ターミナルの場合は、JDKを導入した環境でファイルのあるフォルダへ移動し、次の2行を順に実行します。

javac -encoding UTF-8 ListExample.java
java ListExample

実行結果

追加後: [Alice, Bob, Carol]
要素数: 3
削除後: [Alice, Carol]
要素数: 2
Alice
Carol

3人を追加してからBobを削除するため、最後の繰り返しで表示するのはAliceとCarolの2人です。以下の短いコードは、この完成例の各部分を抜き出したものです。

ListとArrayListは複数のデータをまとめる仕組み

Javaで複数のデータをまとめて扱う方法として、配列があります。

String[] names = new String[3];

配列は便利ですが、最初に要素数を決めて使います。一方、ArrayList はあとから要素を追加したり削除したりしやすいコレクションです。

List<String> names = new ArrayList<>();

List<String> は「文字列を複数まとめて扱うリスト」という意味です。new ArrayList<>() で、実際に使うリストを作っています。

ここで、左側が List なのに右側が ArrayList になっている点に疑問を持つかもしれません。List は「リストとして使えるもの」という大きなくくりで、ArrayList はその中の具体的な作り方の1つです。

図解:配列は固定、ArrayListは追加・削除しやすい
配列
String[] names
= new String[3];
最初に要素数を決めて使う
ArrayList
List<String>
names
= new ArrayList<>();
あとから追加・削除しやすい
人数や件数が変わりやすいデータは、ArrayListで扱うとコードを書きやすくなります。

ArrayListにデータを追加する

ArrayList にデータを追加するときは、add() を使います。

import java.util.ArrayList;
import java.util.List;

List<String> names = new ArrayList<>();

names.add("Alice");
names.add("Bob");
names.add("Carol");

このコードでは、names というリストに Alice、Bob、Carol を順番に追加しています。

ArrayListの要素数を確認する

リストに入っているデータの数を確認するときは、size() を使います。

System.out.println("要素数:" + names.size());

names に3件のデータが入っていれば、names.size() は 3 になります。配列の length と似ていますが、ArrayList では size() というメソッドを呼び出す点に注意します。

ArrayListからデータを削除する

リストからデータを削除するときは、remove() を使います。

names.remove("Bob");

このコードを実行すると、names から Bob が削除されます。削除後のリストには、Alice と Carol が残ります。

図解:addとremoveで中身が変わる
作成直後
空のリスト
→
add
Alice / Bob / Carol
→
remove("Bob")
Alice / Carol
ArrayListは、データのまとまりに対して「追加する」「削除する」「件数を見る」といった操作を行えます。

拡張for文で順番に処理する

ArrayList の中身を1つずつ処理したいときは、拡張for文を使うと読みやすくなります。

for (String name : names) {
    System.out.println(name);
}

このコードでは、names の中から1つずつ文字列を取り出し、name という変数に入れています。前の節でBobを削除しているので、1周目に Alice、2周目に Carol が入り、2周で終了します。

図解:拡張for文で1つずつ取り出す
削除後のListの中身
Alice
Carol
1周ごとに変数へ入る
for (String name
: names)
name に Alice、Carol が順番に入る
Listの中身を順番に処理したいときは、拡張for文と組み合わせると読みやすくなります。

List型で受け取る理由

サンプルでは、次のように左側を List<String>、右側を new ArrayList<>() と書いています。

List<String> names = new ArrayList<>();

左側の List は「この変数はリストとして使います」という宣言です。右側の ArrayList は「今回はArrayListという種類のリストを実際に作ります」という意味です。

たとえるなら、変数側の List は「リストとして扱えればよい」という入口で、実体側の ArrayList は「追加・削除しやすいリストの本体」です。最初は「List 型の変数に、ArrayList の実体を入れて使っている」と押さえれば十分です。

確認問題

  1. ArrayList は、どのようなデータを扱うときに便利ですか。
  2. names.add("Alice"); と names.remove("Alice"); は、それぞれ何をする処理ですか。
  3. for (String name : names) の name には、何が入りますか。

演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。

あわせて読みたい関連記事

まとめ

ArrayList は、あとから増えたり減ったりする複数のデータを扱いやすくするためのクラスです。add() で追加し、remove() で削除し、size() で要素数を確認できます。中身を順番に処理するときは、拡張for文と組み合わせると読みやすくなります。

シェアする

IP Geolocation by DB-IP