flatMap

​ map只能把一个对象转换成另一个对象来作为流中的元素。而flatMap可以把一个对象转换成多个对象作为流中的元素。

例一:

​ 打印所有书籍的名字。要求对重复的元素进行去重。

//        打印所有书籍的名字。要求对重复的元素进行去重。List<Author> authors = getAuthors();authors.stream().flatMap(author -> author.getBooks().stream()).distinct().forEach(book -> System.out.println(book.getName()));

例二:

​ 打印现有数据的所有分类。要求对分类进行去重。不能出现这种格式:哲学,爱情

//        打印现有数据的所有分类。要求对分类进行去重。不能出现这种格式:哲学,爱情     爱情List<Author> authors = getAuthors();authors.stream().flatMap(author -> author.getBooks().stream()).distinct().flatMap(book -> Arrays.stream(book.getCategory().split(","))).distinct().forEach(category-> System.out.println(category));

Lambda中间操作flatMap相关推荐

  1. lambda在python_在Python中使用lambda高效操作列表的教程

    介绍 lambda Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错 result = lambda x: x * x result(2) # ...

  2. [进阶] list 过滤 stream 的lambda进阶操作, 这一篇就够了

    目录 1. list转化map基本操作 id最常用方式: -> 01  key-value值形式: -> 02 id-> 对象本身 -> 03 id-> 对象本身的 la ...

  3. JDK8:Lambda表达式操作List集合

    JDK8的流对list的处理提供了很大的方便,特别是做报表的时候才能真正体现出来这个功能的强大:结合日常使用过程,有两个体会:一个是减少了数据库连接,最忌讳在循环中进行数据查询,特别是嵌套多层循环的时 ...

  4. java 8 lambda·List操作

    常见的几个list 匿名函数的使用# 注意List 使用前需要做非空处理 1.以某个属性分组 Map<String,List<User>> map= userList.stre ...

  5. Util应用程序框架公共操作类(八):Lambda表达式公共操作类(二)

    前面介绍了查询的基础扩展,下面准备给大家介绍一些有用的查询封装手法,比如对日期范围查询,数值范围查询的封装等,为了支持这些功能,需要增强公共操作类. Lambda表达式公共操作类,我在前面已经简单介绍 ...

  6. 面试官系统精讲Java源码及大厂真题 - 42 常用的 Lambda 表达式使用场景解析和应用

    42 常用的 Lambda 表达式使用场景解析和应用 引导语 我们日常工作中,Lambda 使用比较多的场景,就是 List 或 Map 下的 Lambda 流操作,往往几行代码可以帮助我们实现多层 ...

  7. 03-Mono Flux操作

    上一节主要介绍了如何基于Mono和Flux构建一个数据流,Mono是Flux的特例,但大部分API 都是一致的所以重点讲的是Flux.本章将讲Flux和Mono的操作符,如 转换.过滤.异常处理.日志 ...

  8. Stream流:基本API操作详细笔记

    目录 1.Stream流基础介绍 1.1 Stream流有一些特性: 1.2 流的操作可以分为两种类型: 2.创建流 2.1 串行流: 2.2 并行流 3.操作流 3.1 过滤 3.2 映射 3.3 ...

  9. 【Java】Java函数式编程以及流的操作

    文章目录 大纲 lambda表达式 一般内部类 局部内部类 匿名内部类 基于函数式接口的lambda表达式 JDK8中自带的函数式接口 Predicate判断 Consumer消费 Supplier供 ...

最新文章

  1. NeHe OpenGL教程 第十课:3D世界
  2. mysql 导入导出 csv_mysql 导出导入数据 -csv
  3. 《敏捷软件开发》第二章极限编程实践
  4. 代练怎么检测出来的_王者荣耀:代练熬夜打上王者,天美发来58个字,不敢收一分钱...
  5. @Autowired注解与@resource注解的区别(十分详细)
  6. OpenVINO 2020版没有cpu_extension.dll问题解决
  7. Jython调用不包含第三方库的python脚本
  8. mysql for CodeSmith
  9. Java基础语法总结(全)
  10. 【STM32】 JDY-31蓝牙模块
  11. MQTT.fx工具测试mqtt
  12. python excel 颜色填充 excel样式
  13. 找一下不男不女 ?。。?
  14. Java如何实现贪吃蛇小游戏
  15. HTML、CSS、javascript中单行注释和多行注释
  16. IBM Watson健康与美国糖尿病协会结成合作伙伴
  17. kubectl 命令使用(create系列)
  18. 19春福是计算机应用基础,19春福师计算机应用基础在线作业二.doc
  19. HTML+CSS:移动端分辨率、视口、Flex布局、文字溢出显示省略号、溢出两行显示省略号
  20. 练习---爬取QQ音乐某首歌的评论,并存入Excel表中---以《消愁》为例

热门文章

  1. python修饰器太难搞_【Python】小说爬虫界面版(各种BUG已修复)
  2. 什么是NetBIOS网络协议?
  3. 什么是REST-ful,以及REST-ful的实现
  4. uft自动化测试工具 android,【自动化测试工具】QTP/UFT入门
  5. 维吉尼亚密码c语言实现
  6. 多线程-模拟短信群发
  7. 对网站服务器日志进行分析
  8. 解决USB连接时,出现usb 1-1: device descriptor read/64的解决方法
  9. Android制作简易的音乐播放器和视频播放器
  10. 微信小程序模仿开眼视频app(三)——信息卡片瀑布流和分类