返回 调用
<R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)

参数类型是T
返回值是StreamStream的泛型为R(在sparkflatmap的返回值是iterator)

1.内部类实现方式,写法一:匿名内部类
这里Function的泛型<T,R>变成了<String,String>
重写了apply方法,参数类型T 变成了String,返回值类型R也变成了String

    public static void main(String[] args) throws IOException {List<String> list1 = Arrays.asList("1","2","3");list1.stream().flatMap(new Function<String, Stream<? extends String>>() {@Overridepublic Stream<? extends String> apply(String s) {return Arrays.asList("a", s).stream();}}).forEach(System.out::println);}

2.内部类实现方式,写法二:内部类

    public static void main(String[] args) throws IOException {List<String> list1 = Arrays.asList("1","2","3");list1.stream().flatMap(new Fun()).forEach(System.out::println);}static class Fun implements Function<String, Stream<? extends String>>{//实现接口时,泛型是写在接口上@Overridepublic Stream<? extends String> apply(String s) {return Arrays.asList("a", s).stream();}}

3.使用lambda
lambda的本质就是Function内部类

    public static void main(String[] args) throws IOException {List<String> list1 = Arrays.asList("1","2","3");list1.stream().flatMap(x -> Arrays.asList("a",x).stream()).forEach(System.out::println);}

java stream flatmap相关推荐

  1. Java Stream flatMap()

    Java Stream flatMap() is a very useful function to flatten the Stream after applying the given funct ...

  2. java 扁平化_java8 stream flatMap流的扁平化操作

    概念:Steam 是Java8 提出的一个新概念,不是输入输出的 Stream 流,而是一种用函数式编程方式在集合类上进行复杂操作的工具.简而言之,是以内部迭代的方式处理集合数据的操作,内部迭代可以将 ...

  3. java双层list扁平化,浅谈java8 stream flatMap流的扁平化操作

    概念: Steam 是Java8 提出的一个新概念,不是输入输出的 Stream 流,而是一种用函数式编程方式在集合类上进行复杂操作的工具.简而言之,是以内部迭代的方式处理集合数据的操作,内部迭代可以 ...

  4. Java Stream map flatMap mapMulti的升维和降维

    //升维List<Integer> list = List.of(4, 5, 6);System.out.println("第1个");//mapMulti产生额外的一 ...

  5. 如何使用Java 8 FlatMap JDBC ResultSet?

    您还不喜欢机能吗? 这样标题可能不会引起您的共鸣-但文章会! 相信我. 本质上,我们想要这样: +------+------+------+ | col1 | col2 | col3 | +----- ...

  6. java peek函数_基础篇:JAVA.Stream函数,优雅的数据流操作

    写在开头:本文是转载于掘金上的一篇文章,已获得原作者授权,我会在文章最后放上原作者和原文链接. 前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看.java提供了Stre ...

  7. Java Stream API入门篇

    转自:https://www.cnblogs.com/CarpenterLee/p/6545321.html 你可能没意识到Java对函数式编程的重视程度,看看Java 8加入函数式编程扩充多少功能就 ...

  8. java Stream 流

    java Stream 流 Stream 流 流的创建 流的转化 Optianal 流的计算 Stream 流 1. Stream的定义 来自数据源的支持聚合操作的元素序列. 即一个流对外提供接口,接 ...

  9. java stream 取不同的数据_基础篇:JAVA.Stream函数,优雅的数据流操作

    前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看.java提供了Stream的概念,它可以让我们把集合数据当做一个个元素在处理,并且提供多线程模式 流的创建 流的各种数 ...

最新文章

  1. ubuntu16 18 用着速度不错的apt源
  2. linux 内核中基于netfilter的编译选项
  3. Linux内核网络数据发送(六)——网络设备驱动
  4. mysql 变量is null 和 not exists区别
  5. 面试题28 字符串排列
  6. 现代软件工程 教学计划 中国科学技术大学-微软亚洲研究院联合培养班
  7. python常用单词自由且开放_python常用英语单词词汇 unit7
  8. php 双向队列,PHP实现一个双向队列
  9. lambda表达式for_each,find_if简介
  10. Python: 序列list:保持元素顺序同时消除重复值
  11. 芈珺:iOS自动化测试工具总览
  12. 常见食物营养成分表图_提醒大家;甲状腺结节的“根源”已揭晓,4种常见蔬菜,请趁早列入黑名单...
  13. JSF使用HTML5的custom attribute
  14. winrar大全+压缩
  15. 计算机的配置鼠标,电脑双鼠标怎么设置 电脑双鼠标设置方法
  16. Java 学习笔记·十二 —— Java 案例·网上商城系统
  17. Sessions, Window Stations and Desktops(GetDesktopWindow函数得到的桌面句柄, 是Csrss.exe创建的一个窗口)
  18. 2019上半年勒索病毒专题报告
  19. SysRec2016 | Deep Neural Networks for YouTube Recommendations
  20. 2019年会总结+自我反思

热门文章

  1. UVA 644 - Immediate Decodability
  2. vim-Complex repeats
  3. mysql双击同步_求助,WINDOWS下MYSQL双机同步的问题
  4. 从零开始学前端:定时器、Math对象 --- 今天你学习了吗?(JS:Day12)
  5. varchar 求和 非数值_考研线性代数 解题方法汇总(非知识点汇总)
  6. springboot脚本启动bat_SpringBoot修改JVM参数(内置Tomcat命令行启动和IDEA工具配置修改)...
  7. 大数的加减法C语言程序设计,超大数相加C语言程序设计
  8. 通过CDN引入jQuery的几种方式
  9. TCP的可靠传输机制
  10. 讯飞输入法pad版x86_讯飞搜狗为何抵不过百度输入法?读完你就明白了