カテゴリ: Java 更新日: 2026/06/15

Javaのコレクションをループ処理する方法を徹底解説!for・forEach・Iteratorの使い方完全ガイド

2040
Java のコレクションをループ処理する方法(for, forEach, Iterator)

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

生徒

「JavaでListやSetなどのコレクションを繰り返し処理する方法がよく分かりません。」

先生

「Javaでは、for文、拡張for文、forEachメソッド、Iteratorなど、複数のループ処理方法があります。」

生徒

「それぞれ何が違うのですか?初心者でも使える方法はありますか?」

先生

「もちろんです。基本から順番に解説しますので、Javaのコレクションループ処理を一緒に学びましょう。」

1. Javaのコレクションとループ処理とは

1. Javaのコレクションとループ処理とは
1. Javaのコレクションとループ処理とは

Javaのコレクションとは、複数のデータをまとめて管理するための仕組みです。代表的なものにList、Set、Mapなどがあります。Java初心者が最初につまずきやすいのが、このコレクションのループ処理です。

ループ処理とは、複数のデータを一つずつ順番に取り出して処理することを指します。例えば、名前の一覧を表示したり、数値を合計したりする場合に使用します。Javaではfor文、拡張for文、forEachメソッド、Iteratorを使ってコレクションを繰り返し処理できます。

この記事では、JavaのListを例に、コレクションのループ処理方法を初心者向けに丁寧に解説します。Java基礎、オブジェクト指向、コレクションフレームワークの理解にも役立ちます。

2. 基本のfor文でコレクションをループする方法

2. 基本のfor文でコレクションをループする方法
2. 基本のfor文でコレクションをループする方法

まずは基本のfor文です。インデックスを使って要素を取り出す方法で、ArrayListなどのListでよく使われます。Javaの繰り返し処理の基本構文なので、必ず理解しておきましょう。


import java.util.ArrayList;
import java.util.List;

public class ForLoopExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Taro");
        names.add("Hanako");
        names.add("Jiro");

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

実行結果は次の通りです。


Taro
Hanako
Jiro

for文は、配列やListのサイズを取得し、インデックス番号を使ってアクセスします。インデックス操作が必要な場面ではとても便利です。Java初心者はまずこの書き方を覚えましょう。

3. 拡張for文でシンプルに書く方法

3. 拡張for文でシンプルに書く方法
3. 拡張for文でシンプルに書く方法

次に紹介するのは拡張for文です。for-each文とも呼ばれます。Javaのコレクションをより簡単にループ処理できる構文です。インデックスを意識せずに書けるため、初心者におすすめです。


import java.util.ArrayList;
import java.util.List;

public class EnhancedForExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);

        for (Integer num : numbers) {
            System.out.println(num);
        }
    }
}

10
20
30

拡張for文は、Javaのコレクション処理で最もよく使われます。コードが短く読みやすいため、業務システム開発でも頻繁に使用されます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

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

※ Amazon広告リンク

4. forEachメソッドを使ったループ処理

4. forEachメソッドを使ったループ処理
4. forEachメソッドを使ったループ処理

Java8以降では、forEachメソッドを使ったループ処理が可能になりました。ラムダ式と組み合わせることで、よりモダンなJavaコードを書けます。


import java.util.Arrays;
import java.util.List;

public class ForEachMethodExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("Apple", "Banana", "Orange");

        fruits.forEach(fruit -> {
            System.out.println(fruit);
        });
    }
}

Apple
Banana
Orange

forEachメソッドはJavaのラムダ式と相性が良く、簡潔なコードが書けます。Java8以降の開発では必須の知識です。

5. Iteratorを使った安全なループ処理

5. Iteratorを使った安全なループ処理
5. Iteratorを使った安全なループ処理

Iteratorは、コレクションを順番に取り出すための専用インターフェースです。特にループ中に要素を削除する場合に役立ちます。


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IteratorExample {
    public static void main(String[] args) {
        List<String> items = new ArrayList<>();
        items.add("A");
        items.add("B");
        items.add("C");

        Iterator<String> iterator = items.iterator();
        while (iterator.hasNext()) {
            String value = iterator.next();
            if (value.equals("B")) {
                iterator.remove();
            }
        }

        System.out.println(items);
    }
}

[A, C]

Iteratorを使うことで、ConcurrentModificationExceptionを防ぎながら安全に削除できます。Javaコレクションの実務では重要なテクニックです。

6. それぞれの使い分けと選び方

6. それぞれの使い分けと選び方
6. それぞれの使い分けと選び方

Javaのコレクションループ処理には複数の方法がありますが、使い分けが重要です。インデックスが必要ならfor文、単純な繰り返しなら拡張for文、モダンな書き方ならforEachメソッド、削除処理があるならIteratorが適しています。

Java初心者はまず拡張for文を覚え、次にforEachとIteratorを理解するとよいでしょう。コレクションフレームワークの理解が深まると、より効率的なプログラミングが可能になります。

Javaのループ処理は、業務システム開発、Webアプリケーション開発、Springフレームワーク開発など幅広い場面で活用されます。基礎をしっかり身につけることで、応用力も自然と高まります。

まとめ

まとめ
まとめ

今回は、Javaのコレクションをループ処理する方法として、for文、拡張for文、forEachメソッド、Iteratorの使い方を基礎から順番に確認しました。JavaのListやSetなどのコレクションフレームワークは、業務システム開発やWebアプリケーション開発、Springを使ったサーバーサイド開発など、あらゆる現場で活用されます。そのため、コレクションの繰り返し処理を正しく理解することは、Javaプログラミング学習において非常に重要です。

基本のfor文は、インデックスを使って要素にアクセスできるため、要素番号が必要な場面や、複雑な条件分岐を伴う処理に向いています。Java初心者がまず身につけるべきループ構文であり、配列やArrayListの操作とあわせて理解することで、プログラミングの基礎力が身につきます。

拡張for文は、コードが簡潔で可読性が高く、Javaのコレクション処理を直感的に書けるのが特徴です。インデックスを意識せずに一つずつ取り出せるため、単純な一覧表示や合計計算などに最適です。実務でも頻繁に利用されるため、Javaの基礎構文として確実にマスターしておきましょう。

forEachメソッドは、Java八以降で導入されたラムダ式と組み合わせて使うことで、よりモダンな書き方が可能になります。関数型プログラミングの考え方を取り入れたスタイルであり、コードの見通しが良くなります。Javaの最新トレンドを学ぶうえでも重要なポイントです。

Iteratorは、ループ中に安全に要素を削除したい場合に欠かせない仕組みです。通常のfor文や拡張for文で直接削除を行うと例外が発生する可能性がありますが、Iteratorを使えば安全に操作できます。Javaのコレクション内部の仕組みを理解するうえでも、Iteratorの役割は重要です。

それぞれのループ処理方法には特徴があり、用途に応じた使い分けが求められます。Javaコレクションのループ処理を正しく理解することで、バグの少ない安全なコードが書けるようになります。基礎をしっかり固めることが、オブジェクト指向設計や高度なフレームワーク学習への第一歩となります。

総復習サンプルプログラム

最後に、for文と拡張for文、forEach、Iteratorを一つのクラス内で比較するサンプルコードを確認しましょう。Javaのコレクションループ処理の違いを実際に動かして理解することが大切です。


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class CollectionLoopSummary {
    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("Spring");
        list.add("SQL");

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

        System.out.println("拡張for文");
        for (String value : list) {
            System.out.println(value);
        }

        System.out.println("forEachメソッド");
        list.forEach(v -> System.out.println(v));

        System.out.println("Iteratorで削除");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String v = iterator.next();
            if (v.equals("Spring")) {
                iterator.remove();
            }
        }

        System.out.println(list);
    }
}

for文
Java
Spring
SQL
拡張for文
Java
Spring
SQL
forEachメソッド
Java
Spring
SQL
Iteratorで削除
[Java, SQL]

このように一つのプログラムで比較すると、Javaのコレクションループ処理の違いがはっきりと理解できます。Java初心者の方は、必ず自分の環境で実行しながら学習を進めてください。繰り返し手を動かすことで、Javaの基礎力が確実に身につきます。

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

生徒

「Javaのコレクションをループ処理する方法がこんなにあるとは思いませんでした。for文と拡張for文の違いが特に分かりました。」

先生

「よい気づきですね。インデックスが必要かどうかで使い分けるのが基本です。まずは拡張for文を中心に慣れていきましょう。」

生徒

「forEachメソッドはコードが短くて読みやすいですね。ラムダ式も少し分かってきました。」

先生

「その調子です。Java八以降の開発ではforEachとラムダ式は重要です。実務でもよく使われます。」

生徒

「Iteratorは削除するときに安全に使えるのですね。例外を防ぐために必要なのですね。」

先生

「その通りです。Javaコレクションの内部動作を理解すると、なぜ例外が起きるのかも分かります。基礎を積み重ねることが大切です。」

生徒

「これでJavaのコレクションループ処理の基礎が整理できました。繰り返し練習して、実務でも使えるようにします。」

先生

「素晴らしい姿勢です。Javaの基礎構文とコレクションフレームワークをしっかり理解すれば、応用力は自然と身につきます。継続して学習を続けましょう。」

Javaの一覧へ
新着記事
Python
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに解説
NumPyのdtypeとは?データ型の意味と仕組みを初心者向けに徹底解説
Dart
Dartのクラスの作り方!定義・インスタンス生成の基礎
Dartのクラスの作り方を完全解説!初心者でも理解できるクラス定義とインスタンス生成の基礎
Java
Javaの同一性と同値性
Javaの同一性と同値性をわかりやすく解説!初心者向けの基礎知識
AWS
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
【AWS】s3 lsコマンドの使い方まとめ【オプション・ワイルドカード・日付指定】
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで
【AWS】S3の料金体系まとめ!無料枠・課金ポイント・見積もり方法まで

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク