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

举报
Lansonli 发表于 2021/09/29 00:55:02 2021/09/29
【摘要】 目录 映射 | map 用法 案例一 案例二 映射  map 集合的映射操作是将来在编写Spark/Flink用得最多的操作,是我们必须要掌握的。因为进行数据计算的时候,就是一个将一种数据类型转换为另外一种数据类型的过程。 map方法接收一个函数,将这个函数应用到每一个元素,返回一个新的列表 和foreach...

目录

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

 

参考代码


  
  1. scala> a.map(x=>x+1)
  2. res4: List[Int] = List(2345) // 可以看到返回了res4, 如果是foreach用这个逻辑, 无任何返回

 

 

案例二

创建一个列表,包含元素1,2,3,4

使用下划线来定义函数,对List中的每一个元素加1

 

参考代码


  
  1. scala> val a = List(1,2,3,4)
  2. a: List[Int] = List(1234)
  3. scala> a.map(_ + 1)

 

文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。

原文链接:lansonli.blog.csdn.net/article/details/116506267

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。