2021年大数据常用语言Scala(二十二):函数式编程 映射 map
Posted Lansonli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
以上是关于2021年大数据常用语言Scala(二十二):函数式编程 映射 map的主要内容,如果未能解决你的问题,请参考以下文章
2021年大数据常用语言Scala(二十):函数式编程 介绍
2021年大数据常用语言Scala(二十七):函数式编程 聚合操作
2021年大数据常用语言Scala(二十四):函数式编程 过滤 filter
2021年大数据常用语言Scala(二十一):函数式编程 遍历 foreach