JavaのflatMapは、Stream内の各要素をStreamにマッピングし、すべてのStreamを1つのStreamに結合する操作です。
flatMap関数は、1対多のマッピングに使用することができます。たとえば、文字列のリストからそれぞれの文字列を単一の文字に分割し、すべての文字を1つの文字列ストリームに結合することができます。
flatMapを使用した例を以下に示す:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FlatMapExample {
public static void main(String[] args) {
List<String> words = Arrays.asList("Hello", "World");
List<String> characters = words.stream()
.flatMap(word -> Arrays.stream(word.split(""))) // 将每个单词拆分为字符流
.collect(Collectors.toList());
System.out.println(characters); // 输出:[H, e, l, l, o, W, o, r, l, d]
}
}
上記の例では、最初に文字列リストwordsが作成され、それをstream()メソッドでストリームに変換します。次に、flatMap操作を使用して各単語を分割し、それぞれの単語を文字のストリームに変換します。最後に、collectメソッドを使用してすべての文字を1つのリストに収集し、出力します。
flatMapを使用すると、ストリームが返されるので、その後に他のストリーム操作を連鎖的に呼び出すことができることに注意してください。