2026.09.30Java応用 #18|ArrayListTECH BLOG

Java応用 #18|ArrayListとは?データを自由に追加・削除できるリストを使おう

この記事でわかること

  • ArrayListとは何か
  • 配列とArrayListの違い
  • ArrayListにデータを追加・取得・変更・削除する方法
  • for文や拡張for文でデータを取り出す方法
  • ArrayListを使うと便利な場面

前回のおさらい

前回は、複数のデータを表形式で管理できる「多次元配列」について学習しました。

通常の配列は、複数のデータをまとめて管理するために便利な仕組みです。ただし、配列は基本的に作成時に要素数を決めます。

int[] scores = new int[3];

この配列は、3つの整数を格納できます。

では、最初は3件だったデータが、あとから5件、10件と増えていく場合はどうすればよいでしょうか?

このような場面で便利なのが、今回学ぶArrayList(アレイリスト)です。


ArrayListとは?

ArrayListは、複数のデータをまとめて管理できるクラスです。

配列と似ていますが、要素の追加や削除に応じて、リストのサイズを柔軟に変えられるという特徴があります。

例えば、受講者の名前を管理する場合を考えてみましょう。

田中
鈴木
佐藤

あとから新しい受講者が増えた場合も、ArrayListならデータを追加できます。

ArrayListを使うには、最初に次のimport文を記述します。

import java.util.ArrayList;

これは、Javaの標準ライブラリに用意されているArrayListクラスを利用するための記述です。


ArrayListを作成してみよう

まずは、文字列を管理するArrayListを作成してみます。

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

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

    }

}

ここで注目したいのが、次の部分です。

ArrayList<String> names = new ArrayList<>();
  • ArrayList → リストを扱うクラス
  • String → リストに格納するデータの型
  • names → リストを参照する変数名
  • new ArrayList<>() → 新しいリストを作成する

この例では、文字列を格納するArrayListを作成しています。

なお、ArrayListには、基本型のintやdoubleをそのまま型引数として指定することはできません。整数を扱う場合は、対応するクラス型のIntegerを使用します。

ArrayList<Integer> numbers = new ArrayList<>();

① addでデータを追加する

ArrayListにデータを追加するには、add()メソッドを使用します。

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

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

        names.add("田中");
        names.add("鈴木");
        names.add("佐藤");

        System.out.println(names);

    }

}

実行結果

[田中, 鈴木, 佐藤]

add()を呼び出すたびに、リストへデータが追加されます。

配列のように、最初に格納する件数を決めておく必要はありません。


② getでデータを取得する

リストに格納したデータを取り出すには、get()メソッドを使用します。

System.out.println(names.get(0));
System.out.println(names.get(1));
System.out.println(names.get(2));

実行結果

田中
鈴木
佐藤

get()に指定する番号は、配列と同じく0から始まります。

  • get(0) → 1番目のデータ
  • get(1) → 2番目のデータ
  • get(2) → 3番目のデータ

存在しない位置を指定すると、実行時にIndexOutOfBoundsExceptionが発生するため注意しましょう。


③ setでデータを変更する

登録済みのデータを変更する場合は、set()メソッドを使用します。

names.set(1, "高橋");

System.out.println(names);

実行結果

[田中, 高橋, 佐藤]

set()では、変更したい位置と新しい値を指定します。

names.set(位置, 新しい値);

この例では、2番目のデータである「鈴木」が「高橋」に変更されました。


④ removeでデータを削除する

データを削除する場合は、remove()メソッドを使用します。

names.remove(1);

System.out.println(names);

実行結果

[田中, 佐藤]

remove(1)によって、2番目のデータが削除されました。

削除されたあとは、残ったデータが詰められるため、リストの位置が変わることがあります。

また、ArrayList<String>の場合は、位置ではなく値を指定して削除することもできます。

names.remove("田中");

このように、位置や値を指定してデータを削除できます。


⑤ sizeで要素数を取得する

ArrayListに何件のデータが格納されているかを調べるには、size()メソッドを使用します。

System.out.println(names.size());

例えば、リストに「田中」「鈴木」「佐藤」の3件が格納されている場合、実行結果は次のようになります。

3

ここで、配列との違いを確認しておきましょう。

  • 配列 → length
  • ArrayList → size()

配列のlengthはフィールドですが、ArrayListのsize()はメソッドです。書き方を混同しないようにしましょう。


⑥ for文でデータを取り出す

ArrayListに登録されたデータを順番に処理する場合は、for文を使用できます。

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

names.add("田中");
names.add("鈴木");
names.add("佐藤");

for (int i = 0; i < names.size(); i++) {
    System.out.println(names.get(i));
}

実行結果

田中
鈴木
佐藤

for文で位置を管理し、get(i)で各データを取得しています。

繰り返し条件には、配列のlengthではなく、ArrayListのsize()を使用する点がポイントです。


⑦ 拡張for文でデータを取り出す

すべてのデータを順番に取り出したい場合は、拡張for文も利用できます。

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

拡張for文では、添字を使わずにデータを1つずつ取り出せます。

単純にすべてのデータを処理したい場合は、拡張for文を使うとコードが簡潔になります。


配列とArrayListの違い

配列

int[] scores = new int[3];
  • 作成時に要素数を指定する
  • 要素数は基本的に固定される
  • 要素へのアクセスには添字を使う
  • 要素数の取得にはlengthを使う

ArrayList

ArrayList<Integer> scores = new ArrayList<>();
  • 要素を追加・削除できる
  • add()やremove()でリストを変更できる
  • get()で要素を取得できる
  • 要素数の取得にはsize()を使う

件数が変わらないデータには配列、追加・削除が必要なデータにはArrayListというように、目的に応じて使い分けましょう。


よくある間違い

① import文を書き忘れる

ArrayListを利用する場合は、通常、ファイルの先頭に次の記述が必要です。

import java.util.ArrayList;

② 配列と同じようにlengthを使う

ArrayListの要素数を取得するときは、lengthではなくsize()を使います。

names.size()

③ 添字を1から数えてしまう

ArrayListの位置も0から始まります。最初のデータはget(0)で取得します。

④ Integerではなくintを指定する

ArrayListの型引数には、intではなくIntegerを指定します。

ArrayList<Integer> numbers = new ArrayList<>();

まとめ

  • ArrayListは、複数のデータを柔軟に管理できるクラス
  • add()でデータを追加する
  • get()でデータを取得する
  • set()でデータを変更する
  • remove()でデータを削除する
  • size()で要素数を取得する
  • for文や拡張for文でデータを順番に処理できる

ArrayListは、受講者一覧や商品一覧など、登録件数が変わるデータを扱うときに便利です。

次回は、データに名前や番号などのキーを付けて管理できるHashMapについて学習します。