2021年大数据常用语言Scala(二十二):函数式编程 映射 map

Posted Lansonli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年大数据常用语言Scala(二十二):函数式编程 映射 map相关的知识,希望对你有一定的参考价值。

目录

映射 | 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

2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy

2021年大数据常用语言Scala(二十三):函数式编程 扁平化映射 flatMap