Java8关于map和flatMap的代码片段思考

今天看到一段java8的代码,因为初学java8所以有点不好理解:
《Java8关于map和flatMap的代码片段思考》
然后把流的每个过程单独用变量赋值,就好理解多了:

List<List<String>> lists = Arrays.asList(Arrays.asList("Jordan"),
      Arrays.asList("Kobe","James"),Arrays.asList("Durant","Curry")
);
//集合 -> 流:流里的元素也是集合的元素,所以流的元素是List<String>
Stream<List<String>> streamRaw = lists.stream();
//流元素的转换,List<String>,通过Collection的stream方法,变为Stream<String>
//即:List<String> -> Stream<String>,把List<String>进行了一次流化
Stream<Stream<String>> streamMap = streamRaw.map(Collection::stream);
//和上面方法引用效果一样
Stream<Stream<String>> streamMap2 = streamRaw.map(l -> l.stream());

//map方法是单纯的转换,而flatMap方法可以进行流的扁平化,和上面的map做对比
Stream<String> streamFlatmap = streamRaw.flatMap(l -> l.stream());
    原文作者:幺零小柒
    原文地址: https://blog.csdn.net/a_842297171/article/details/80105255
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞