隐藏页面特效

FlatMap和map的区别

1|0FlatMap和map的区别


1|1官方解释


map

返回一个流,流里的元素是,原流元素经常函数处理的结果。

也可以理解为将原流的元素,通过function进行处理后替换。

flatMap

返回一个流,先将流的元素通过指标函数映射,再合并一个流。

1|2遇到问题的情况


通过数据库分组查询出一个对象的集合,对象的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是将字符串数据流每个元素进行流化操作,再将这些流放到一起形成一个字符串流

__EOF__

本文作者阿布呦
本文链接https://www.cnblogs.com/weilx/p/16805966.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   阿步呦  阅读(647)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示