Java入門 #15 - ArrayList の基本

入門 | 10分 で読める | 2026.05.02

公式ドキュメント

今回やること

ArrayListは、後から要素を増減できるリストです。買い物リストを一つ作り、基本操作を順に加えます。

前提: Java入門 #14 - Scannerまでの変数、メソッド、繰り返しを理解していること。

操作書き方意味
追加add(value)末尾へ追加する
取得get(index)指定位置の要素を読む
置換set(index, value)指定位置の要素を入れ替える
削除remove(index)指定位置の要素を消す
件数size()現在の要素数を返す

配列とArrayListのどちらを使うかは、要素数が変わるかで考えられます。

場面選び方
曜日7個など、個数が固定配列でもよい
買い物やタスクなど、追加・削除するArrayListが扱いやすい

ArrayListも要素を順番に持ちます。重複した値を追加でき、同じ「パン」が2件入ることもあります。

1. 空のリストへ追加する

ArrayListjava.utilパッケージからimportします。<String>は「このリストには文字列だけを入れる」という指定です。

ArrayList<String> items = new ArrayList<>();
items.add("パン");
items.add("牛乳");
items.add("りんご");

位置を表すindexは0から始まるため、get(0)は「パン」です。

2. 置換して削除する

items.set(1, "豆乳");
items.remove(0);

set(1, ...)で2番目の「牛乳」を「豆乳」へ変えます。その後、remove(0)で先頭の「パン」を削除します。削除後は残った要素のindexが前へ詰まります。

操作後index 0index 1index 2size
3件追加パン牛乳りんご3
set(1, "豆乳")パン豆乳りんご3
remove(0)豆乳りんご2

setは件数を変えず、removeは件数と後ろのindexを変えます。この違いを追うと、範囲外エラーを減らせます。

完成コードを動かす

ArrayListDemo.javaとして保存します。

import java.util.ArrayList;

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();

        items.add("パン");
        items.add("牛乳");
        items.add("りんご");

        System.out.println("最初の商品: " + items.get(0));

        items.set(1, "豆乳");
        items.remove(0);

        System.out.println("商品数: " + items.size());
        for (String item : items) {
            System.out.println(item);
        }
    }
}
javac ArrayListDemo.java
java ArrayListDemo

配列と違い、作成時に要素数を決めていません。addremoveに合わせてsize()が変わります。

値を指定して削除する書き方もあります。

items.remove("りんご");

remove(0)はindex 0を削除し、remove("りんご")は最初に見つかった同じ値を削除します。ArrayList<Integer>では数値がindexとして解釈される場合があるため、入門では削除対象を確認してから使います。

成功確認

次の順で表示されれば成功です。

最初の商品: パン
商品数: 2
豆乳
りんご

追加後は3件、削除後は2件になり、牛乳が豆乳へ置き換わったことを確認します。

よくあるつまずき

indexを1から数える

最初の要素はget(0)です。3件のリストで使えるindexは012で、get(3)は範囲外です。

intを型引数へ書く

ジェネリクスにはプリミティブ型を使えません。整数ならArrayList<Integer>と書きます。

ループ中に直接削除する

拡張for文の途中で同じリストをremoveすると例外の原因になります。この入門では、削除を終えてから表示します。

空のリストからgetする

要素がない時のget(0)も範囲外です。取得前にisEmpty()またはsize()で要素があるか確認します。

練習

行きたい場所を入れるArrayList<String>を作ってください。3件追加し、2番目を別の場所へ置換し、最後の1件を削除して、残った場所を順に表示します。

次のステップ

Java入門 #16 - ListとLinkedListで、List型として扱う理由と別の実装を学びます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR