FlatMap和map的区别
2023-03-31 10:45:19 时间
FlatMap和map的区别
官方解释
map
返回一个流,流里的元素是,原流元素经常函数处理的结果。
也可以理解为将原流的元素,通过function进行处理后替换。
flatMap
返回一个流,先将流的元素通过指标函数映射,再合并一个流。
遇到问题的情况
通过数据库分组查询出一个对象的集合,对象的billId根据分组条件进行group_concat进行拼接,导致返回的对象数据里,存在数据billId属性的值为 billId,billId...类似的字符串,现在需要遍历集合收集成一个billId的list集合。
list.add(new String[]{"1","2,3","4,5,6"})
list.add(new String[]{"7,8","9"})
List<String> billIds = list.stream()
.map(bill -> bill.getBillId().split(","))
.flatMap(Arrays::stream)
.collect(Collectors.toList());
//billIds输出为
//1,2,3,4,5,6,7,8,9
拿上述例子说明:
- map是将原来的对象流通过function将billId分割为字符串数组
- flatMap是将字符串数据流每个元素进行流化操作,再将这些流放到一起形成一个字符串流
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制