2021年大数据常用语言Scala(二十二):函数式编程 映射 map
目录
映射 map
集合的映射操作是将来在编写Spark/Flink用得最多的操作,是我们必须要掌握的。因为进行数据计算的时候,就是一个将一种数据类型转换为另外一种数据类型的过程。
map方法接收一个函数,将这个函数应用到每一个元素,返回一个新的列表
和foreach不同的是, map将处理好的元素封装到新的列表中, 并返回
而foreach不会返回我们新的列表
所以一般视使用场景, 来选择带返回的map还是不返回的foreach
用法
方法签名
def map[B](f: (A) ⇒ B): TraversableOnce[B]
方法解析
map方法就是将集合的每一个元素,传递给提供的函数去处理,将函数处理后的每一个返回值都收集起来
全部存入到List中。这个List作为map方法的返回值。
map方法 |
API |
说明 |
泛型 |
[B] |
指定map方法最终返回的集合泛型(前后两个B是相互对应的. 一般我们可以省略, scala会帮我自动推断出来的. 因为输入的类型是确定的, 来自集合. 而对于输出, 每一个元素都会被同一个函数(逻辑)进行处理, 那么每一个元素转换后的类型也是一样的. 所以可以自动推断) |
参数 |
f: (A) ⇒ B |
传入一个函数对象<br />该函数接收一个元素A(要转换的列表元素),返回值为类型B |
返回值 |
TraversableOnce[B] |
B类型的集合 |
traversable once 字面意思表示可遍历一次的,也就是集合的意思
map方法解析
案例一
创建一个列表,包含元素1,2,3,4
对List中的每一个元素加1
参考代码
-
scala> a.map(x=>x+1)
-
res4: List[Int] = List(2, 3, 4, 5) // 可以看到返回了res4, 如果是foreach用这个逻辑, 无任何返回
案例二
创建一个列表,包含元素1,2,3,4
使用下划线来定义函数,对List中的每一个元素加1
参考代码
-
scala> val a = List(1,2,3,4)
-
a: List[Int] = List(1, 2, 3, 4)
-
-
scala> a.map(_ + 1)
文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。
原文链接:lansonli.blog.csdn.net/article/details/116506267
- 点赞
- 收藏
- 关注作者
评论(0)