Java8 Stream的map和flatMap的区别
来源:互联网 发布:华为软件开发工资待遇 编辑:程序博客网 时间:2024/05/18 21:11
package com.lgx.jdk8.part02;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;/** * Stream的map和flatMap的区别: * map会将一个元素变成一个新的Stream * 但是flatMap会将结果打平,得到一个单个元素 */public class Test09StreamMapFlatMap { public static void main(String[] args) { /**获取单词,并且去重**/ List<String> list = Arrays.asList("hello welcome", "world hello", "hello world", "hello world welcome"); //map和flatmap的区别 list.stream().map(item -> Arrays.stream(item.split(" "))).distinct().collect(Collectors.toList()).forEach(System.out::println); System.out.println("---------- "); list.stream().flatMap(item -> Arrays.stream(item.split(" "))).distinct().collect(Collectors.toList()).forEach(System.out::println); //实际上返回的类似是不同的 List<Stream<String>> listResult = list.stream().map(item -> Arrays.stream(item.split(" "))).distinct().collect(Collectors.toList()); List<String> listResult2 = list.stream().flatMap(item -> Arrays.stream(item.split(" "))).distinct().collect(Collectors.toList()); System.out.println("---------- "); //也可以这样 list.stream().map(item -> item.split(" ")).flatMap(Arrays::stream).distinct().collect(Collectors.toList()).forEach(System.out::println); System.out.println("================================================"); /**相互组合**/ List<String> list2 = Arrays.asList("hello", "hi", "你好"); List<String> list3 = Arrays.asList("zhangsan", "lisi", "wangwu", "zhaoliu"); list2.stream().map(item -> list3.stream().map(item2 -> item + " " + item2)).collect(Collectors.toList()).forEach(System.out::println); list2.stream().flatMap(item -> list3.stream().map(item2 -> item + " " + item2)).collect(Collectors.toList()).forEach(System.out::println); //实际上返回的类似是不同的 List<Stream<String>> list2Result = list2.stream().map(item -> list3.stream().map(item2 -> item + " " + item2)).collect(Collectors.toList()); List<String> list2Result2 = list2.stream().flatMap(item -> list3.stream().map(item2 -> item + " " + item2)).collect(Collectors.toList()); }}
阅读全文
0 0
- Java8 Stream的map和flatMap的区别
- java8之数据流Stream的Map和flatMap的区别
- java8中 map和flatmap的理解
- map和flatmap的区别
- flatmap和map的区别
- Spark的flatMap和Map的区别
- spark中flatmap和map的区别
- Spark中map和flatmap的区别
- spark 中map 和flatmap 的区别
- map 与 flatMap 的区别
- flatMap与map的区别
- java8 stream flatmap
- spark map flatMap flatMapToPair mapPartitions 的区别和用途
- spark map flatMap flatMapToPair mapPartitions 的区别和用途
- Swift 函数式编程: map 和 flatMap的区别
- spark中map和flatmap之间的区别
- Stream API:filter、map和flatMap方法
- Spark 中 map 与 flatMap 的区别
- caffe中Solver文件及其参数含义
- idea常用快键键汇总
- struts2的执行流程
- 碎片工具箱
- Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/util/DefaultIndenter
- Java8 Stream的map和flatMap的区别
- 类相关的技术细节 -13
- 数据库范式区分
- [App] Nginx 版本平滑升级
- 小米5miui8安卓7.0NFC模拟门禁卡成功(手动)
- javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
- 在文件中查找特定的字符串方法 grep命令
- Android客制化------禁止系统下载apk文件
- URL编解码