在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) { Listwords = Arrays.asList("Hello", "World"); // 使用map操作将每个单词转换为其长度列表 List > lengths = words.stream() .map(word -> Arrays.stream(word.split("")) .mapToInt(String::length) .boxed() .collect(Collectors.toList())) .collect(Collectors.toList()); // 使用flatMap操作将所有长度列表合并为一个流 Stream
flatLengths = lengths.stream() .flatMap(List::stream); // 收集并打印合并后的流中的所有元素 flatLengths.forEach(System.out::println); } }
在这个示例中,我们首先创建了一个包含两个单词的字符串列表。然后,我们使用map
操作将每个单词转换为一个整数列表,其中包含每个字符的长度。接下来,我们使用flatMap
操作将所有长度列表合并为一个流。最后,我们收集并打印合并后的流中的所有元素。