map和flatmap的区别
来源:互联网 发布:国家网络应急中心笔试 编辑:程序博客网 时间:2024/05/16 12:41
科技优家 2016-12-07 14:14
对于stream, 两者的输入都是stream的每一个元素,map的输出对应一个元素,必然是一个元素(null也是要返回),flatmap是0或者多个元素(为null的时候其实就是0个元素)。
flatmap的意义在于,一般的java方法都是返回一个结果,但是对于结果数量不确定的时候,用map这种java方法的方式,是不太灵活的,所以引入了flatmap。
对于Optional的map和flatmap:
map是把结果自动封装成一个Optional,但是flatmap需要你自己去封装。
public static void main(String[] args) { Optional<String> s = Optional.of("input"); System.out.println(s.map(Test::getOutput)); System.out.println(s.flatMap(Test::getOutputOpt));} static Optional<String> getOutputOpt(String input) { return input == null ? Optional.empty : Optional.of("output for " + input);} static String getOutput(String input) { return input == null ? null : "output for " + input;}//这两种返回的结果是一样的
0 0
- map和flatmap的区别
- flatmap和map的区别
- Spark的flatMap和Map的区别
- spark中flatmap和map的区别
- Spark中map和flatmap的区别
- spark 中map 和flatmap 的区别
- map 与 flatMap 的区别
- flatMap与map的区别
- Java8 Stream的map和flatMap的区别
- java8之数据流Stream的Map和flatMap的区别
- spark map flatMap flatMapToPair mapPartitions 的区别和用途
- spark map flatMap flatMapToPair mapPartitions 的区别和用途
- Swift 函数式编程: map 和 flatMap的区别
- spark中map和flatmap之间的区别
- Spark 中 map 与 flatMap 的区别
- Spark 中 map 与 flatMap 的区别
- Spark 中 map 与 flatMap 的区别
- [spark]map 与 flatMap 的区别
- H5 div标签详解
- SpringMVC-视图解析
- Entity Framework 基础
- tomcat
- Ajax的底层实现--使用Ajax实现无刷新登录实例
- map和flatmap的区别
- Ognl值栈对象及struts标签
- Oracle链接、会话、事务的关系
- Android开发基础 -- Log日志 解释 和 封装
- web移动端下拉加载数据简单实现
- 数据库oracle for update of和for update区别
- 框架基础:ajax设计方案(二)—集成轮询技术
- 技术总结2016.12.08
- linux-tq2440