stream流中的flatmap用法
时间: 2023-12-28 14:15:47 浏览: 82
浅谈java8 stream flatMap流的扁平化操作
stream流中的flatMap方法是用于将流中的每个元素映射为一个流,然后将这些流扁平化为一个新的流。它的使用方式类似于map方法,但是flatMap方法返回的是一个扁平化后的流。
具体来说,flatMap方法接受一个Function函数作为参数,这个函数将每个元素映射为一个流。然后,flatMap方法将这些流合并成一个新的流。
例如,假设我们有一个包含多个字符串的流,我们想要将每个字符串拆分为单词,并将这些单词作为新的流返回。可以使用flatMap方法来实现:
```java
List<String> strings = Arrays.asList("Hello", "World", "CSDN", "ChatGPT");
List<String> words = strings.stream()
.flatMap(str -> Arrays.stream(str.split("")))
.collect(Collectors.toList());
```
在上面的例子中,flatMap方法将每个字符串拆分为单个字符的流,然后将这些流扁平化为一个新的流。最后,我们使用collect方法将新的流收集为一个List集合。结果将是包含所有单词的List集合:["H", "e", "l", "l", "o", "W", "o", "r", "l", "d", "C", "S", "D", "N", "C", "h", "a", "t", "G", "P", "T"]。
总结一下,flatMap方法用于将流中的每个元素映射为一个流,并将这些流扁平化为一个新的流。它在处理嵌套集合或者需要扁平化操作的场景下非常有用。
阅读全文