スライドショー

【Java入門】拡張for文とJava8のforEachの使い方総まとめ

こんにちは!エンジニアの中沢です。

Javaにはループ処理を行うfor文がありますが、他にも拡張for文(for-each文)や、Java8で追加されたforEachメソッドを使ってループ処理を行うことができます。

この記事では、

  • 拡張for文とは
  • Java8で追加されたforEachメソッドとは
  • Listで拡張for文を使う方法
  • Mapで拡張for文を使う方法
  • ListでJava8のforEachメソッドを使う方法

などの基本的な内容から、応用的な使い方に関しても解説していきます。今回はこれらの方法を覚えるために、拡張for文とforEachメソッドの使い方をわかりやすく解説します!

拡張for文とJava8のforEachメソッドとは

ループ処理はfor文で行うことができますが、拡張for文やforEachメソッドを使うことでより簡潔にコードを記述できるようになります。

拡張for文とは

拡張for文は、配列やListなどのコレクションのすべての要素に対して順番に処理を行うために使います。拡張for文の構文は次のように記述します。

for (型 変数名 : コレクション名){
    // 繰り返し行う処理
}

拡張for文は通常のfor文と違って条件式と変化式が無いため、Listなどすべての要素に対して処理を行います。

Java8で追加されたforEachメソッドとは

Javaのループ処理にはfor文、拡張for文などがありましたが、Java8でforEachメソッドとラムダ式が追加されました。forEachメソッドとラムダ式を使うことで、さらに簡潔にコードを書けるようになります。

forEachメソッドを使ったラムダ式の構文は次のように記述します。

コレクション名.forEach(引数 -> 繰り返し行う処理)

ラムダ式を使った場合は型を書く必要がなくなるので、拡張for文よりもさらに簡潔にコードを書くことができます。

拡張for文の使い方

ここでは拡張for文をListとMapで使う方法を解説します。

Listで拡張for文を使う方法

拡張for文を使ってListのすべての要素に対して同じ処理を行うことができます。Listで拡張for文を使う方法を次のプログラムで確認してみましょう。

import java.util.ArrayList;
import java.util.List;
 
public class Main {
    public static void main(String[] args) {
 
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
     
        for (String s : list) {
            System.out.println(s);
        }
    }
}
実行結果
a
b
c

このプログラムでは、Listのすべての要素を順番に表示しています。ここではListで拡張for文を使う方法を解説しましたが、拡張for文と同じように要素数を気にせずループ処理を行うIteratorというものがあります。

Iteratorの使い方を詳しく知りたいときはこちらの記事を確認してください。

【3分でわかるJavaの基礎】List内のデータをfor文で処理する方法(iterator)
更新日 : 2017年6月7日

Mapで拡張for文を使う方法

拡張for文はMapに使うこともできます。

拡張for文を使ってMapからキーと値を取得する方法を、次のプログラムで確認してみましょう。

import java.util.HashMap;
import java.util.Map;
 
public class Main {
 
    public static void main(String[] args) {
        
        Map<String, String> map = new HashMap<>();
        map.put("samurai", "侍");
        map.put("engineer", "エンジニア");
     
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}
実行結果
samurai : 侍
engineer : エンジニア

このプログラムでは、キーと値のペア(エントリー)からキーと値をそれぞれ取得して表示しています。Mapで拡張for文を使う方法を詳しく知りたいときはこちらの記事を確認してください。

【Java入門】Mapにfor文やforeachのループを使いキーと値を取得する
更新日 : 2019年4月12日

Java8のforEachメソッドの使い方

最後にJava8で追加されたforEachメソッドとラムダ式の使い方を解説します。

forEachメソッドとラムダ式の使い方を次のプログラムで確認してみましょう。

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

public class Main {
 
    public static void main(String[] args) {
        
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
     
        list.forEach(s -> System.out.println(s));
    }
}
実行結果
a
b
c

このプログラムではforEachメソッドとラムダ式を使って、Listのすべての要素を順番に表示しています。

このように、forEachメソッドとラムダ式を使うことでループ処理が1行で簡潔に記述できました。

forEachメソッドとラムダ式について詳しく知りたいときはこちらの記事を確認してください。

【Java入門】Java8のforEachとラムダ式を配列、List、Mapで使う
更新日 : 2019年5月4日

まとめ

いかがでしたか?

今回は拡張for文とforEachメソッドの使い方について解説しました。ラムダ式は理解するまで難しいかもしれませんが、処理を簡潔に記述できるのでぜひ覚えてくださいね。

もし、拡張for文とforEachメソッドを使ってループ処理を行う方法を忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]