map和flatmap的区别
程序员文章站
2022-07-13 17:09:33
...
对于stream, 两者的输入都是stream的每一个元素,map的输出对应一个元素,必然是一个元素(null也是要返回),flatmap是0或者多个元素(为null的时候其实就是0个元素)。
flatmap的意义在于,一般的java方法都是返回一个结果,但是对于结果数量不确定的时候,用map这种java方法的方式,是不太灵活的,所以引入了flatmap。
对于Optional的map和flatmap:
map是把结果自动封装成一个Optional,但是flatmap需要你自己去封装。
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; } //这两种返回的结果是一样的
上一篇: map和flatmap的区别
下一篇: 针对jquery的when方法做的应变
推荐阅读
-
select count()和select count(1)的区别和执行方式讲解
-
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
-
ubuntu系统中/etc/rc.local和/etc/init.d/rc.local的区别详解
-
jquery中map函数与each函数的区别实例教程介绍
-
详解nodejs中exports和module.exports的区别
-
_proto_和prototype的区别
-
ajax请求post和get的区别以及get post的选择
-
vue2.0 资源文件assets和static的区别详解
-
python基础教程:dir()和__dict__属性的区别
-
PHP explode()函数的几个应用和implode()函数有什么区别