Java8的stream流中flatMap()方法的作用
在Java 8的Stream流中,flatMap()方法用于将流中的每个元素转换为一个新的流,然后将这些新的流合并成一个流。它的作用是扁平化流,将多个流合并为一个流。
flatMap()方法接受一个函数作为参数,该函数将每个流的元素映射为一个新的流。然后,flatMap()方法将这些新的流合并成一个流,作为其结果返回。
例如,假设我们有一个包含多个字符串的流,每个字符串表示一个单词列表,我们想要将这些单词合并为一个单词流。我们可以使用flatMap()方法来实现这个目标。
下面是一个简单的示例代码:
List<String> wordList1 = Arrays.asList("Hello", "World"); List<String> wordList2 = Arrays.asList("Java", "Stream"); List<List<String>> listOfWordLists = Arrays.asList(wordList1, wordList2); List<String> flattenedList = listOfWordLists.stream() .flatMap(List::stream) .collect(Collectors.toList()); System.out.println(flattenedList);
输出结果为:
[Hello, World, Java, Stream]
在上面的示例中,我们首先创建了两个包含单词的列表wordList1和wordList2。然后,我们将这两个列表添加到另一个列表listOfWordLists中。接下来,我们使用stream()方法将listOfWordLists转换为流,并调用flatMap()方法。在flatMap()方法中,我们传递了List::stream函数引用,它将每个列表映射为一个流。最后,我们使用collect()方法将所有的单词收集到一个列表中。
总而言之,flatMap()方法在Stream流中用于将多个流合并为一个流,对于扁平化操作非常有用。它可以帮助简化流的处理过程,并提供更加简洁和可读的代码。