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. 全文搜索引擎选 ElasticSearch 还是 Solr?
  2. 程序员面试拼多多,来看看这些面试题你掌握的有多少呢?
  3. MySQL创建索引(CREATE INDEX)
  4. request.getRequestDispatcher()的两个方法forward()/include()!!!
  5. 化工原理少学时答案解析_化工原理 少学时 思考题答案
  6. 实现数据库的增删改查
  7. mysqli 扩展_MySQLi的优势
  8. ios13苹方字体ttf_字体 | iOS1013 SF Compact Rounded 英文 By alex
  9. C语言课后习题(20)
  10. ICLR'22 | 审稿结果统计速览
  11. 工程测量(平面高程控制网)
  12. 什么是APS高级计划排程系统?APS计划排产有什么功能和作用?
  13. 高仿富途牛牛-组件化(二)-磁力吸附
  14. Windows之cmd命令检查网络
  15. 0.91英寸和0.96英寸OLED驱动区别
  16. 百度图片搜索搜出大量色情图片,原因不明
  17. 美国各州人口数据分析
  18. 用Arduino制作红外线循迹自动机器人
  19. SciTE Script Editor 解决中文乱码
  20. 有方便记笔记的手机便签app吗?

热门文章

  1. 超详细shell脚本编程快速入门
  2. win7 64位 Python3.5.1 scipy,numpy, Gensim主题模型包安装
  3. java 整数字符串转成财务表示形态
  4. 揭秘!在线称重设备是如何实现物品称重分选的
  5. 南昌航空大学计算机网络,南昌航空大学计算机网络试题库
  6. 怎样做到微信支付二维码链接,单独跳转?
  7. 正念诱导的内源性θ刺激引起自我超越与抑制成瘾行为
  8. java preference xml,java-将PreferenceScreen添加到linearlayout
  9. 使用uni-app自带的uniicons图标字库
  10. 复制目录下面所有的文件名及attrib命令使用