首页 > 编程语言 >JAVA8 lambda中map和flatMap

JAVA8 lambda中map和flatMap

时间:2023-03-14 15:22:46浏览次数:34  
标签:map flatMap stream ... country world JAVA8

 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...]

world.stream()

.flatMap(country -> country.getCities().stream())

.flatMap(city-> countryName.getCityParks().stream())

.forEach(System.out::print);
   

标签:map,flatMap,stream,...,country,world,JAVA8
From: https://www.cnblogs.com/l-liu/p/17214937.html

相关文章

  • 面试官:怎么删除 HashMap 中的重复元素?第 3 种实现思路,99% 的人不会!
    背景大家好,我是栈长。前些天,栈长给大家分享了3篇实用的文章:带了一个3年的开发,不会循环删除List中的元素,我简直崩溃!!面试官:怎么去除List中的重复元素?我一行代码......
  • tryhackme_nmap
    https://www.cnblogs.com/-Lucky-/p/17100073.htmlNmap基本端口扫描nmap中考虑的端口状态Open:表示服务正在侦听指定端口。Closed:表示没有服务在指定端口上侦听,尽管该端......
  • B+Tree/Hash_Map/STL Map
    1、Hash操作能根据散列值直接定位数据的存储地址,设计良好的hash表能在常数级时间下找到需要的数据,但是更适合于内存中的查找。2、B+树是一种是一种树状的数据结构,适合做索......
  • Hashtable 和 HashMap 的区别
     Hashtable:(1)Hashtable是一个散列表,它存储的内容是键值对(key-value)映射。(2)Hashtable的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。(3)Has......
  • go mmap
    packagemainimport("fmt""os""syscall")funcF(a,buint64)uint64{r:=make([]uint64,1)cadd(r,9,8)returna+b+r[0]}funccalls(res[]ui......
  • 深入理解ES6--Set、Map及Symbol
    Set集合和Map集合Set集合是一种无重复元素的列表,通常用来检测给定的值在某个集合中是否存在;Map集合内含多组键值对,通常用来缓存频繁取用的数据。ES5中的问题varmap=Objec......
  • java8新特性-引用流-sorted
    例子:List<User>users=newArrayList<>();users.add(newUser("张三",30));users.add(newUser("李四",34));users.add(newUser("王五",20));......
  • 【转载】GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._pk_2dengine_2derror_2dqu
    我的阿里云上的CentOS8碰到这个错误,采用下面BestResponse中针对RHEL8的解决办法,成功解决。原文:原文链接:https://access.redhat.com/discussions/4728791Unableto......
  • Mapping of Windows Handles to Objects(Windows句柄到(C++)对象的映射)
     TN003:MappingofWindowsHandlestoObjects技术文章003:Windows句柄到(C++)对象的映射ThisnotedescribestheMFCroutinesthatsupportmappingWindow......
  • HashMap的put()方法解读(Jdk1.8)
    通过本章内容来给大家解读hashMap中put()方法的逻辑流程。目录:-put()方法流程图-put()方法代码解读- 单元测试代码- put方法-......