【プログラミングしてみよう10】JavaのArrayListで柔軟にデータを扱う

Java

前回は継承とポリモーフィズムを使って、柔軟なオブジェクト指向の書き方を学びました。

今回は、配列よりも柔軟にデータを扱える「ArrayList」について解説します。 配列は要素数が決まっていましたが、ArrayListを使うことで、データの追加や削除を自由に行えるようになります。

ArrayListの基本

これまで使っていた配列は、作成する際に要素数を決める必要があり、後から要素数を増やしたり減らしたりすることができませんでした。

int[] scores = new int[5]; // 要素数は5で固定

一方、「ArrayList」を使うと、要素数を決めずにリストを作成し、後から自由にデータを追加・削除できます。ArrayListを使うには、プログラムの先頭でインポートが必要です。

import java.util.ArrayList;

ArrayListは以下のように作成します。

ArrayList<データ型> 変数名 = new ArrayList<>();

<データ型> の部分には、リストに入れたいデータの型を指定します。なお、ArrayListには intdouble のような基本データ型ではなく、IntegerDouble のような「ラッパークラス」を指定する必要があります。

サンプルコード(ArrayListの基本操作)

ファイル作成

「Java02」フォルダに ArrayListTest.java という名前でファイルを作成します

コード入力

以下のコードを入力します。

import java.util.ArrayList;

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

        names.add("ぱんまる");
        names.add("たろう");
        names.add("はなこ");

        System.out.println("登録されている人数:" + names.size());

        for (int i = 0; i < names.size(); i++) {
            System.out.println((i + 1) + "番目:" + names.get(i));
        }

        names.remove("たろう");

        System.out.println("「たろう」を削除しました");
        System.out.println("登録されている人数:" + names.size());

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

コンパイル

javac ArrayListTest.java

実行

java ArrayListTest

実行結果は次のようになります。

登録されている人数:3
1番目:ぱんまる
2番目:たろう
3番目:はなこ
「たろう」を削除しました
登録されている人数:2
ぱんまる
はなこ

コードの解説

ArrayList<String> names = new ArrayList<>(); で、文字列を格納するための空のArrayListを作成しています。配列のときのように要素数を指定する必要がない点に注目してください。

names.add("ぱんまる"); のように add メソッドを使うことで、リストの末尾にデータを追加できます。配列とは異なり、最初に要素数を決めなくても、必要なときに自由にデータを増やしていけます。

names.size() は、配列の length に相当するもので、現在リストに入っている要素の数を取得します。names.get(i) は、インデックス i 番目の要素を取得するメソッドです。配列のように names[i] という書き方はできないので注意しましょう。

names.remove("たろう"); のように、値を直接指定して要素を削除することもできます。インデックスを指定して names.remove(1) のように削除することも可能です。削除を行うと、size() で取得できる要素数も自動的に減ります。

最後の部分では、for (String name : names) という書き方を使っています。これは「拡張for文(for-each文)」と呼ばれる書き方で、リストや配列の要素を先頭から順番にすべて取り出して処理することができます。インデックスを意識せずに書けるため、すべての要素に同じ処理をしたいだけのときに便利です。

まとめ

ArrayListを使うことで、配列のように要素数を固定せずに、データの追加や削除を自由に行えるようになります。add でデータを追加、get で取得、remove で削除、size で要素数を取得するという基本操作を覚えておきましょう。また、拡張for文を使うことで、リストの全要素に対する処理をシンプルに書くことができます。配列とArrayList、それぞれの特徴を理解して、状況に応じて使い分けられるようになりましょう。次回は、想定外の事態が起きたときにプログラムを安全に動かす「例外処理(try-catch)」について解説していきます。

2026/06/19(金) ぱんまる

コメント

タイトルとURLをコピーしました