カテゴリ: Java 更新日: 2026/01/18

JavaのArrayListクラスとgetメソッドの使い方を徹底解説!初心者でもわかるデータ操作

ArrayList のget メソッド
ArrayList のget メソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaでリストにあるデータを取り出す方法ってありますか?」

先生

「はい、JavaではArrayListクラスを使ってリストを作成し、getメソッドで要素を取り出すことができます。」

生徒

「そのArrayListって何ですか?」

先生

ArrayListは、Javaで提供されているコレクションクラスの一つで、可変長のリストを扱うためのものです。サイズを動的に変更でき、データの追加や削除が簡単に行えます。」

1. ArrayListクラスとは?

1. ArrayListクラスとは?
1. ArrayListクラスとは?

ArrayListクラスは、Javaのjava.utilパッケージに含まれており、動的配列のような働きをします。ArrayListの便利な特徴は以下の通りです。

  • 可変長:要素の追加や削除が容易。
  • インデックスによるアクセス:指定したインデックスで要素を取り出すことができる。

これにより、ArrayListはデータを柔軟に扱いたい場合に非常に有用です。Javaプログラムで使用するにはimport java.util.ArrayList;を記述する必要があります。

2. getメソッドの使い方

2. getメソッドの使い方
2. getメソッドの使い方

getメソッドは、指定したインデックスの要素を取得するために使用されます。基本的な使い方を見てみましょう。


import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        // インデックス2の要素を取得
        String fruit = fruits.get(2);
        System.out.println("取得したフルーツ: " + fruit);
    }
}

このコードでは、fruitsリストに3つの要素を追加し、インデックス2の要素Cherrygetメソッドで取得しています。


取得したフルーツ: Cherry

3. getメソッド使用時の注意点

3. getメソッド使用時の注意点
3. getメソッド使用時の注意点

getメソッドを使う際には、いくつか注意が必要です。

  • インデックス範囲外エラー:存在しないインデックスを指定すると、IndexOutOfBoundsExceptionがスローされます。リストのサイズを確認してから使用することをお勧めします。
  • ゼロベースインデックス:ArrayListのインデックスは0から始まるため、get(0)で最初の要素が取得されます。

例えば、インデックスの範囲外エラーが発生する例を見てみましょう。


import java.util.ArrayList;

public class ArrayListErrorExample {
    public static void main(String[] args) {
        ArrayList<String> items = new ArrayList<>();
        items.add("Item1");

        // 存在しないインデックスを取得しようとするとエラー
        try {
            String item = items.get(3);
        } catch (IndexOutOfBoundsException e) {
            System.out.println("エラー: インデックスが範囲外です。");
        }
    }
}

エラー: インデックスが範囲外です。

4. for文・拡張for文とgetメソッドを組み合わせて使う

4. for文・拡張for文とgetメソッドを組み合わせて使う
4. for文・拡張for文とgetメソッドを組み合わせて使う

ArrayListgetメソッドは、for文や拡張for文と組み合わせることで、すべての要素を順番に取り出すことができます。複数のデータをまとめて処理したいときに便利です。


import java.util.ArrayList;

public class ArrayListForExample {
    public static void main(String[] args) {
        ArrayList<String> languages = new ArrayList<>();
        languages.add("Java");
        languages.add("Python");
        languages.add("JavaScript");

        // 通常のfor文とgetメソッドで要素を取り出す
        for (int i = 0; i < languages.size(); i++) {
            String lang = languages.get(i);
            System.out.println("インデックス " + i + " の要素: " + lang);
        }

        // 拡張for文で要素を取り出す(getは不要)
        for (String lang : languages) {
            System.out.println("拡張for文で取り出した要素: " + lang);
        }
    }
}

通常のfor文では、iというインデックスを使ってget(i)で要素を取り出します。一方、拡張for文ではインデックスを意識せず、リストの要素を順番に処理できます。


インデックス 0 の要素: Java
インデックス 1 の要素: Python
インデックス 2 の要素: JavaScript
拡張for文で取り出した要素: Java
拡張for文で取り出した要素: Python
拡張for文で取り出した要素: JavaScript

JavaのArrayListを使う際には、for文とgetメソッドを組み合わせる基本パターンを覚えておくと、データ操作の幅が広がります。

5. sizeメソッドとgetメソッドでインデックス範囲を安全に扱う

5. sizeメソッドとgetメソッドでインデックス範囲を安全に扱う
5. sizeメソッドとgetメソッドでインデックス範囲を安全に扱う

ArrayListには、要素数(サイズ)を取得するためのsizeメソッドがあります。getメソッドを使う前にsizeで範囲を確認することで、IndexOutOfBoundsExceptionを防ぎやすくなります。


import java.util.ArrayList;

public class ArrayListSizeExample {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Dog");
        animals.add("Cat");

        int index = 1;

        // sizeを使ってインデックスが範囲内かチェック
        if (index >= 0 && index < animals.size()) {
            String animal = animals.get(index);
            System.out.println("取得した動物: " + animal);
        } else {
            System.out.println("エラー: インデックスが範囲外です。(size: " + animals.size() + ")");
        }

        // すべての要素を安全にループ
        for (int i = 0; i < animals.size(); i++) {
            System.out.println("animals.get(" + i + "): " + animals.get(i));
        }
    }
}

sizeメソッドは、現在リストに何個の要素が入っているかを返します。0以上、size()未満のインデックスであれば、getメソッドで安全に要素を取得できます。


取得した動物: Cat
animals.get(0): Dog
animals.get(1): Cat

Javaのリスト操作では、ArrayListsizegetをセットで覚えておくことで、インデックス範囲外のエラーを事前に回避しやすくなります。

6. オブジェクトを格納したArrayListからgetメソッドで取り出す

6. オブジェクトを格納したArrayListからgetメソッドで取り出す
6. オブジェクトを格納したArrayListからgetメソッドで取り出す

ArrayListには、Stringだけでなく自分で定義したクラスのオブジェクトも格納できます。Javaのジェネリクスを使うことで、getメソッドで取り出したときに型がはっきりしているため、キャストなしで安全に扱えます。


import java.util.ArrayList;

class Student {
    private String name;
    private int score;

    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public int getScore() {
        return score;
    }
}

public class ArrayListObjectExample {
    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("Alice", 90));
        students.add(new Student("Bob", 80));

        // インデックス0のStudentオブジェクトを取得
        Student s = students.get(0);
        System.out.println("名前: " + s.getName() + ", 点数: " + s.getScore());

        // ループで全員分を表示
        for (int i = 0; i < students.size(); i++) {
            Student st = students.get(i);
            System.out.println("[" + i + "] " + st.getName() + " さんの点数: " + st.getScore());
        }
    }
}

このように、ArrayList<Student>のように型を指定しておくと、getメソッドで取り出した値の型もStudentになります。JavaのArrayListgetメソッドは、単純な文字列だけでなくオブジェクトの一覧管理にもよく使われるパターンです。


名前: Alice, 点数: 90
[0] Alice さんの点数: 90
[1] Bob さんの点数: 80

実務のJavaプログラムでも、ArrayListにオブジェクトを入れてgetメソッドで取り出す形は頻出です。初心者のうちから「リストにオブジェクトを入れる」イメージに慣れておくと、今後の学習がスムーズになります。

まとめ:JavaのArrayListとgetメソッドの活用で効率的なデータ操作を身につけよう

まとめ:JavaのArrayListとgetメソッドの活用で効率的なデータ操作を身につけよう
まとめ:JavaのArrayListとgetメソッドの活用で効率的なデータ操作を身につけよう

これまでの内容では、JavaのArrayListクラスが持つ柔軟なデータ管理機能と、リストから特定のデータを取り出すために重要なgetメソッドの使い方を中心に学びました。プログラム開発では、複数の値を扱う機会が非常に多く、配列よりも柔軟に操作できるArrayListは、初心者から実務レベルまで幅広く利用される基本的なコレクションです。

特に、インデックスを指定して値を取り出せる機能は、一覧データを扱う際に欠かせません。さらに、インデックス範囲外エラーを防ぐためにはsizeメソッドを活用し、安全にアクセスするロジックを意識することも大切でした。

また、Javaのジェネリクスを利用することで、ArrayList<Student>のようにオブジェクトを扱いながら、キャスト不要で型安全なプログラムを書くことができ、読みやすさや保守性が向上します。こうした実践的なパターンは、大規模なシステム開発やWebアプリケーションのデータ処理にも繋がる重要な知識です。

以下に、記事で扱った内容を総合したサンプルコードを掲載します。基本的な追加・取得・ループ処理・オブジェクト操作をまとめて確認でき、学習の復習として活用できます。

総合サンプルコード

import java.util.ArrayList;

class Product {
    private String name;
    private int price;

    public Product(String name, int price) {
        this.name = name;
        this.price = price;
    }

    public String getName() { return name; }
    public int getPrice() { return price; }
}

public class SummaryExample {
    public static void main(String[] args) {
        ArrayList<Product> products = new ArrayList<>();
        products.add(new Product("PC", 120000));
        products.add(new Product("Mouse", 2000));
        products.add(new Product("Keyboard", 5000));

        // インデックス1の要素取得
        Product p = products.get(1);
        System.out.println("取得した商品: " + p.getName() + " / " + p.getPrice() + "円");

        // sizeで範囲確認
        for (int i = 0; i < products.size(); i++) {
            Product item = products.get(i);
            System.out.println("[" + i + "] " + item.getName() + " : " + item.getPrice() + "円");
        }
    }
}

上記のサンプルでは、製品名と価格を持つオブジェクトをリストに格納し、getメソッドを使って特定のデータを取得したり、for文で全件を処理したりしています。Javaのコレクション操作に慣れてくると、データベースやAPIから取り込んだ情報をリストで管理し、そのまま画面表示や計算処理に流用できるようになります。

今回学んだ内容を踏まえて、次はListインターフェースLinkedListとの比較、stream APIとの組み合わせなど、より高度なJavaコレクション操作へ発展させていくと、プログラムの表現力がさらに広がっていきます。

先生と生徒の振り返り会話

生徒

「今回の学習で、ArrayListってただの入れ物じゃなくて、データを柔軟に扱える便利な仕組みだって分かりました!」

先生

「その通りです。特にgetメソッドでインデックスを指定して取り出せるという点は、一覧データを扱うプログラムではとても重要ですね。」

生徒

「あと、範囲外アクセスのエラーを避けるにはsize()を確認するのが大事だってことも理解できました!オブジェクトのリスト管理にも使えるのが面白かったです。」

先生

「実務開発でも、APIで取得したデータをリストにまとめたり、画面表示に使ったりと活用範囲が広いので、しっかり身につけておきましょう。」

生徒

「次はLinkedListListインターフェースも学んで、もっとJavaのコレクションを使いこなしていきたいです!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

JavaのArrayListクラスとは何ですか?初心者でもわかるように説明してください。

JavaのArrayListクラスは、java.utilパッケージに含まれる可変長のリスト構造です。データの追加や削除が柔軟にでき、インデックス番号でアクセスできる便利なコレクションクラスです。

Javaの基礎を最初から体系的に学びたい人には、 初心者向けで定評のある定番入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「Like」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.5
Java&Spring記事人気No5
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.6
Java&Spring記事人気No6
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説