在Java中,flatMap
是一個用于將多個流合并為一個流的操作。它通常與映射(map)操作結合使用,以便在合并之前對每個元素進行轉換。要實現映射,您需要首先使用map
操作將輸入數據轉換為所需類型,然后使用flatMap
將這些流合并為一個流。
以下是一個簡單的示例,說明如何使用Java中的flatMap
和map
操作:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class FlatMapExample {
public static void main(String[] args) {
List<String> words = Arrays.asList("Hello", "World");
// 使用map操作將每個單詞轉換為其長度列表
List<List<Integer>> lengths = words.stream()
.map(word -> Arrays.stream(word.split(""))
.mapToInt(String::length)
.boxed()
.collect(Collectors.toList()))
.collect(Collectors.toList());
// 使用flatMap操作將所有長度列表合并為一個流
Stream<Integer> flatLengths = lengths.stream()
.flatMap(List::stream);
// 收集并打印合并后的流中的所有元素
flatLengths.forEach(System.out::println);
}
}
在這個示例中,我們首先創建了一個包含兩個單詞的字符串列表。然后,我們使用map
操作將每個單詞轉換為一個整數列表,其中包含每個字符的長度。接下來,我們使用flatMap
操作將所有長度列表合并為一個流。最后,我們收集并打印合并后的流中的所有元素。