当前位置:嗨网首页>书籍在线阅读

25-结果分析

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

结果分析

本节介绍了如何用一个中间操作来转换流中的元素,以及一个完成源类型到目标类型转换的表达式。在这个例子中,我们使用了如下3种不同的方法。

  • mapToDouble() :我们使用该方法把包含对象的 Stream 转换成以双精度型数字作为元素的 DoubleStream 。该方法接收的参数可以是一个lambda表达式,也可以是一个 ToDoubleFunction 接口的实现。表达式会接收一个流中的元素并返回一个双精度型数值。
  • map() :如果必须将 Stream 中的元素转换成另一种类型,就可以使用该方法。比如在本例中将 Person 类转换成了 BasicPerson 类。该方法接收一个lambda表达式或 Function 接口的实现作为参数。该表达式必须创建一个新对象并初始化它的属性。
  • flatMap() :该方法适合于一个更复杂的场景,当你需要处理一个包含 Stream 对象的 Stream ,而且想要将它们转换成一个唯一的流时,就可以使用它。虽然该方法和 map() 一样接收一个lambda表达式或 Function 接口的实现作为参数,但是在 flatMap() 中,这个表达式必须返回 Stream 对象。 flatMap() 方法会自动把所有流串联成唯一的流。