map和flatmap的区别
2016-12-08 08:44
357 查看
科技优家 2016-12-07 14:14
对于stream, 两者的输入都是stream的每一个元素,map的输出对应一个元素,必然是一个元素(null也是要返回),flatmap是0或者多个元素(为null的时候其实就是0个元素)。
flatmap的意义在于,一般的java方法都是返回一个结果,但是对于结果数量不确定的时候,用map这种java方法的方式,是不太灵活的,所以引入了flatmap。
对于Optional的map和flatmap:
map是把结果自动封装成一个Optional,但是flatmap需要你自己去封装。
对于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; } //这两种返回的结果是一样的
相关文章推荐
- Spark 中 map 与 flatMap 的区别
- spark map flatMap flatMapToPair mapPartitions 的区别和用途
- spark RDD操作map与flatmap的区别
- flatmap和map的区别
- Spark 中 map 与 flatMap 的区别
- Spark 中 map 与 flatMap 的区别
- spark中flatmap和map的区别
- Spark map flatMap区别
- Spark之中map与flatMap的区别
- map与flatmap区别
- map 与 flatMap 的区别
- Spark 中 map 与 flatMap 的区别
- Spark之中map与flatMap的区别
- map flatmap mappartition flatMapToPair四种用法区别
- Spark 中 map 与 flatMap 的区别
- Spark 中 map 与 flatMap 的区别
- [spark]map 与 flatMap 的区别
- Spark 中map与 flatMap的区别
- Spark中map和flatmap的区别
- spark 中map 和flatmap 的区别