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

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にデータを追加する
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 が残ります。
remove("Bob")拡張for文で順番に処理する
ArrayList の中身を1つずつ処理したいときは、拡張for文を使うと読みやすくなります。
for (String name : names) {
System.out.println(name);
}
このコードでは、names の中から1つずつ文字列を取り出し、name という変数に入れています。前の節でBobを削除しているので、1周目に Alice、2周目に Carol が入り、2周で終了します。
: names)
name に Alice、Carol が順番に入るList型で受け取る理由
サンプルでは、次のように左側を List<String>、右側を new ArrayList<>() と書いています。
List<String> names = new ArrayList<>();
左側の List は「この変数はリストとして使います」という宣言です。右側の ArrayList は「今回はArrayListという種類のリストを実際に作ります」という意味です。
たとえるなら、変数側の List は「リストとして扱えればよい」という入口で、実体側の ArrayList は「追加・削除しやすいリストの本体」です。最初は「List 型の変数に、ArrayList の実体を入れて使っている」と押さえれば十分です。
確認問題
ArrayListは、どのようなデータを扱うときに便利ですか。names.add("Alice");とnames.remove("Alice");は、それぞれ何をする処理ですか。for (String name : names)のnameには、何が入りますか。
演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。
あわせて読みたい関連記事
- Javaの拡張for文とは?配列の要素を1つずつ取り出す考え方
- Javaのポリモーフィズムはなぜ使う?同じ呼び出しで処理を切り替える考え方
- Javaの参照型とは?変数にオブジェクトそのものではなく場所の情報が入る考え方
まとめ
ArrayList は、あとから増えたり減ったりする複数のデータを扱いやすくするためのクラスです。add() で追加し、remove() で削除し、size() で要素数を確認できます。中身を順番に処理するときは、拡張for文と組み合わせると読みやすくなります。