首页 > 其他分享 >FlatMap和map的区别

FlatMap和map的区别

时间:2022-10-19 14:03:19浏览次数:60  
标签:map FlatMap 区别 list flatMap billId 字符串

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是将字符串数据流每个元素进行流化操作,再将这些流放到一起形成一个字符串流

标签:map,FlatMap,区别,list,flatMap,billId,字符串
From: https://www.cnblogs.com/weilx/p/16805966.html

相关文章

  • 【JAVA】接口和抽象类有什么区别?
    ##前言Java是非常典型的面向对象语言,曾经有一段时间,程序员整天把面向对象、设计模式挂在嘴边。虽然如今大家对这方面已经不再那么狂热,但是不可否认,掌握面向对象设计原则和......
  • 进程与线程的区别
    1)地址空间:线程共享本进程的地址空间,而进程之间是独立的地址空间。2)资源:线程共享本进程的资源如内存、I/O、cpu等,不利于资源的管理和保护,而进程之间的资源是独立的,能很好......
  • SigmaPlot 14.0软件安装包下载及安装教程
    SigmaPlot14.0软件简介:SigmaPlot14.0是Systat国际软件公司研发的一款强大的专业科学绘图软件,画出的精密的图型将变得极其容易,它被广泛地运用在医学、生命科学、化学、工程......
  • Token和Jwt的区别
    Token基本原理Token(就是加密的字符串,使用MD5,等不可逆加密算法,一定要保证唯一性)客户端使用用户名跟密码请求登录服务端收到请求,去验证用户名与密码验证成功,服务端......
  • 工业串口服务器和工业交换机的区别有哪些?
    串口服务器:串口服务器可以促使您的串口设备联网,提供串口转网络功能,可以把RS-232/485/422串口转化成TCP/IP网络接口,完成RS-232/485/422串口与TCP/IP网络接口的数据双向透明传......
  • _initialize()函数与 __construct()函数的区别
    _initialize()方法是在任何方法执行之前,都要执行的,当然也包括__construct构造函数。也就是说如果存在_initialize()函数,调用对象的任何方法都会导致_initialize()函数的自......
  • Xen、KVM、Qemu间的关系和区别
    关于qemuQemu是一个独立的虚拟化解决方案,通过intel-VT或AMDSVM实现全虚拟化,安装qemu的系统,可以直接模拟出另一个完全不同的系统环境,虚拟机的创建通过qemu-image既可完成......
  • vue路由传参,query和params的区别
    路由传参是使用vue最常用的方法,而其中query和params都能实现传参效果,不过这两者还是有区别的首先路由配置{path:'/admin',//组件路径name:'admin',//组件别名com......
  • python当中map,reduce和filter函数用法和区别
    在python当中,关于map,reduce和filter函数用法。map:对任何可迭代序列中的每一个元素应用对应的函数。python3中返回的是迭代器。reduce:将序列中所有的元素进行合并运算......
  • docker jdk 容器内无法使用 jstack/jmap/jstat 等命令
    问题:想看看容器内java线程锁的状态,运行jstack1提示“UnabletogetpidofLinuxThreadsmanagerthread”,使用其他jdk命令也是如此排查:原因是因为容器内的jav......