JAVA8 lambda中map和flatMap

 lambda中map 是对流元素进行转换,flatMap 是对流中的元素(集合)进行平铺后合并,即对流中的每个元素平铺后又转换成为了 Stream 流。 

flatMap 首先将一个函数应用于元素,然后将其展平,当你需要将 [[a,b,c],[d,e,f],[x,y,z]] 具有两个级别的数据结构转换为 [a,b,c,d,e,f,x,y,z] 这样单层的数据结构时,就选择使用 flatMap 处理。

如果是 [a,b,c,d,e,f,x,y,z] 转换为大写 [A,B,C,D,E,F,X,Y,Z] 这样单层转换,就使用 map 即可。

flatMap 举个例子:

世界对象world中包含很多个国家,每个国家中又包含很多个城市,每个城市中又包含很多个公园,要打印出所有的公园。

世界对象:world=[国家1,国家2,国家3...]

国家对象:country =[城市1,城市2,城市3...]

城市对象:city=[公园1,公园2,公园3...]

1
2
3
4
5
6
7
world.stream()
 
.flatMap(country -> country.getCities().stream())
 
.flatMap(city-> countryName.getCityParks().stream())
 
.forEach(System.out::print);
 
 
posted @   #庄生晓梦  阅读(1407)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示