javaのflatMapメソッドは何に使われますか

Javaにおける一般的な関数型プログラミング操作であるflatMapは、ネストしたコレクション構造(多次元配列やネストしたリストなど)を1つのフラットなコレクションに変換するために使用されます。

具体的には、flatMapは、元の集合の各要素を新しい集合に変換する関数を受け取り、これらの新しい集合を単一のフラットな集合にまとめます。この操作により、集合の次元を減らし、複数のネストした層の要素を単一層の集合に展開できます。

以下に、flatMapを使用するサンプルコードを示します。

List<List<Integer>> nestedList = Arrays.asList(
    Arrays.asList(1, 2, 3),
    Arrays.asList(4, 5, 6),
    Arrays.asList(7, 8, 9)
);

List<Integer> flatList = nestedList.stream()
                                  .flatMap(List::stream)
                                  .collect(Collectors.toList());

System.out.println(flatList); // 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9]

上で示したコードでは、nestedListは複数のネストしたリストを含むコレクションです。flatMapオペレーションを使うことで、このネストした構造を扁平なコレクションflatListに変換できます。flatMap(List::stream)は各ネストしたリストをストリームに変換し、それらのストリームを1つのストリームとしてマージし、最終的にcollect(Collectors.toList())を使ってストリームをリストとして収集します。

つまりflatMapは、入れ子の集合構造をフラットな集合構造に変換して、集合操作のロジックを単純化するのに役立ちます。

bannerAds