こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、15年目エンジニアです。
この記事では、 JavaのStream APIのflatMapメソッドについて
- Stream APIのflatMapメソッドとは
- Stream APIのflatMapメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
Stream APIについては、こちらの記事をご参考ください。
前提条件:実行環境について
実行環境は以下の通りです。
| OS | Windows10 |
|---|---|
| IntelliJ IDEAのエディション | Community(無料版) |
| IntelliJ IDEAのバージョン | 2023.2 |
| プロジェクト | Javaプロジェクト |
| SDK | openjdk-24 |
Javaを動かすためにIntelliJ IDEAを使っています。
IntelliJ IDEAのインストールは、下の記事をご参考ください。
Stream APIのflatMapメソッドとは
Stream APIのflatMapメソッドとは、ストリームを引数にとって各要素をバラバラにして1つのストリームで返すメソッドです。
ストリームの要素が配列の多重ループのときにとても便利です。
flatMapメソッドは、中間操作です。
使い方サンプルは以下になります。
|
1 2 3 |
【Stream】 .flatMap(【Stream】 -> 【Stream】.【処理】) .【終端操作】; |
では、次の章で実際に使ってみます。
Stream APIのflatMapメソッドを解説するプログラムの概要
Stream APIのflatMapメソッドを解説するプログラムでは、要素が配列のListに対して、flatMapメソッドを使って、バラバラにして1つのListにして表示させます。
Javaサンプルプログラム
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<List<String>> fruitList = new ArrayList<>(Arrays.asList( Arrays.asList("イチゴ", "オレンジ", "ブドウ"), Arrays.asList("レモン", "スイカ"), Arrays.asList("みかん", "メロン", "バナナ", "マンゴー"), Arrays.asList("シャインマスカット", "キウイ") )); System.out.println("flatMap実行前"); fruitList.stream().forEach(fruit -> System.out.println(fruit)); System.out.println("flatMap実行後"); fruitList.stream().flatMap(list -> list.stream()) .forEach(fruit -> System.out.println(fruit)); } } |
実行結果
Javaプログラムを実行します。
実行のやり方は
- プログラムを右クリックして実行
- 実行タブから実行
- ガターから実行
の3種類あるので、いずれかで実行します。
詳しい解説は以下の記事をご参考ください。

|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
flatMap実行前 [イチゴ, オレンジ, ブドウ] [レモン, スイカ] [みかん, メロン, バナナ, マンゴー] [シャインマスカット, キウイ] flatMap実行後 イチゴ オレンジ ブドウ レモン スイカ みかん メロン バナナ マンゴー シャインマスカット キウイ |
ストリーム内の要素がすべて1つのストリームとなっていることが確認できました。
まとめ:Stream APIのflatMapメソッドを使ってみよう!
以上がJavaのStream APIのflatMapメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント