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

今天看到一段java8的代码,因为初学java8所以有点不好理解:
这里写图片描述
然后把流的每个过程单独用变量赋值,就好理解多了:

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());
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值