十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容主要讲解“Java8 StreamApi中的map和flatMap操作方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java8 StreamApi中的map和flatMap操作方法是什么”吧!
创新互联专注于企业成都全网营销推广、网站重做改版、新安网站定制设计、自适应品牌网站建设、H5网站设计、商城网站制作、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为新安等各大城市提供网站开发制作服务。1.前言
Java 8提供了非常好用的 Stream API ,可以很方便的操作集合。今天我们来探讨两个Stream 中间操作map(Function super T, ? extends R> mapper)
和flatMap(Function super T, ? extends Stream extends R>> mapper)
2. map 操作
map
操作是将流中的元素进行再次加工形成一个新流。这在开发中很有用。比如我们有一个学生集合,我们需要从中提取学生的年龄以分析学生的年龄分布曲线。
放在Java 8 之前 我们要通过新建一个集合然后通过遍历学生集合来消费元素中的年龄属性。现在我们通过很简单的流式操作就完成了这个需求。
对应的伪代码:
// 伪代码 List
3. flatMap 操作
通过上面的例子,map
操作应该非常好理解。那么flatMap
是干嘛的呢? 这样我们把上面的例子给改一下,如果是以班级为单位,提取所有班级下的所有学生的年龄以分析学生的年龄分布曲线。这时我们使用上面的方法还行得通吗?
List> studentGroup= gradeList.stream().map(Grade::getStudents).collect(Collectors.toList());
通过上面的一顿操作,我们只能得到每个班的学生集合的集合List
。 我们还需要嵌套循环才能获取学生的年龄数据,十分不便。如果我们能返回全部学生的集合>
List
就方便多了。 没错!flatMap
可以搞定!
// flatMap 提取 List
正如上面的伪代码所示,我们使用flatMap
将所有的学生汇聚到一起。然后再使用map
操作提取年龄。flatMap
不同于map
地方在于map
只是提取属性放入流中,而 flatMap 先提取属性放入一个比较小的流,然后再将所有的流合并为一个流。有一种 “聚沙成塔” 的感觉。
到此,相信大家对“Java8 StreamApi中的map和flatMap操作方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!