stream.map 和stream.flatmap的详细区别 并代码举例
时间: 2023-06-03 16:05:52 浏览: 101
浅析scala中map与flatMap的区别
好的,明白了。关于你的问题,stream.map和stream.flatMap都是Java 8中Stream API中的方法,它们都可以用于对一个流中的元素进行处理。不同的是,map方法只能对每个元素进行一对一的转换操作,而flatMap方法则可以进行一对多的操作。具体来说,flatMap方法将流中的每个元素转换为一个流,然后将这些流扁平化为一个新流。举例如下:
```
List<String> words = Arrays.asList("hello", "world");
// 使用map方法将每个字符串转换为长度
List<Integer> wordLengths = words.stream()
.map(String::length)
.collect(Collectors.toList());
// 输出结果为 [5, 5]
// 使用flatMap方法将每个字符串拆分为单词
List<String> wordList = words.stream()
.flatMap(str -> Arrays.stream(str.split("")))
.collect(Collectors.toList());
// 输出结果为 [h, e, l, l, o, w, o, r, l, d]
```
希望这个回答能够帮到你。
阅读全文