对于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;
}
//这两种返回的结果是一样的
分享到:
相关推荐
flatMap和Map区别flatMap 2维数组以上可以降维
主要介绍了Swift map和flatMap的相关资料,帮助大家更好的理解和使用Swift,感兴趣的朋友可以了解下
主要介绍了浅析scala中map与flatMap的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java 8提供了非常好用的 Stream API ,可以很方便的操作集合。今天通过这篇文章给大家分享Java 8 Stream Api 中的 map和 flatMap 操作方法,需要的朋友可以参考下
关于swift 的map,reduce,filter,flatMap语法的代码练习
主要介绍了Java8 Stream flatmap中间操作用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
8.Map和FlatMap流操作之间的主要区别是什么? 9.Map和Flat map流操作之间的相似之处是什么? 10.定义流管道? 11.什么是使用Stream Pipeline的强制性? 12.新日期和时间API的作用是什么? 13.Java SE 8的核心API类是...
DIY函数式方法原理 使用java 定义 函数式编程中常用的方法 forEach, map, flatmap, filter
js代码-012手写代码练习-----数组扁平化---flatMap map reduce contact
用于JavaScript的异步迭代器扩展库,包括map,reduce,filter,flatMap,pipe等
学习目标遍历(foreach)使用类型推断简化函数定义使用下划线来简化函数定义映射(map)扁平化映射(flatMap)过滤(filter)排序(sort)默认排序 | sorted指定字段排序 | sortBy自定义排序 | sortWith分组(group...
异步迭代扩展为JavaScript包括的文库map , reduce , filter , flatMap , pipe和。 安装 npm install axax # or yarn add axax 为什么选择Axax? 异步迭代器是处理异步流的有用方法。 该库添加了许多实用程序...
RxJava的使用,包括just,from,map,flatMap,filter等Operators的使用
RxJava的使用,包括just,from,map,flatMap等操作符,以及多线程的使用,链式调用和使用Lambda表达式
RxJava的使用,包括just,from,map,flatMap等操作符,以及多线程的使用,链式调用和使用Lambda表达式
它具有功能编程中的一些已知功能,例如map和flatMap 。 它具有有用的组合器,可用于实现诸如此类的承诺; whenAll用于在多个诺言完成时执行某项操作, whenAny用于在一个诺言列表中的一个完成时执行某项操作。 ...
本文实例讲述了es6数组的flat(),flatMap()函数用法。分享给大家供大家参考,具体如下: 数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据...
关于Functors和Monads的最酷的东西是map和flatMap 。 使用这些我们可以简化如下代码: func getFancyEmojiForUser () -> String ? { if let actuallyAUser = userFromDatabase () { let joinedUserName = ...