Scala map与flatMap

本文深入探讨了Scala编程语言中Map和FlatMap函数的使用方法与区别。通过具体实例展示了如何利用这两个函数对集合进行操作,包括将列表中每个元素值乘以2,以及分隔字符串并将结果扁平化。Map适用于对集合中每个元素应用函数并返回新列表,而FlatMap则在此基础上进一步将结果扁平化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. map函数
  对集合的每一个元素运用某个函数操作,然后将结果作为一个新的列表返回。

 实例1:将列表中每个元素值乘以2 

scala> val list1=List(1,2,3,4)
list1: List[Int] = List(1, 2, 3, 4)

 

scala> list1.map(_*2)
res54: List[Int] = List(2, 4, 6, 8)
另一种写法:
scala> list1.map(x=>x*2)
res55: List[Int] = List(2, 4, 6, 8)

 实例2:分隔字符

scala> val l=List("jack","joe","terry","jerry")
l: List[String] = List(jack, joe, terry, jerry) 

 

scala> l.map(_.split(" "))
res20: List[Array[String]] = List(Array(jack), Array(joe), Array(terry), Array(jerry)) 

2.flatMap 函数

 对集合中每个元素运用某个函数操作(每个元素会被映射为0到多个输出元素)后,将结果扁平化组成一个新的集合。

实例1:分隔字符 

scala> val l=List("jack","joe","terry","jerry") 

l: List[String] = List(jack, joe, terry, jerry)

scala> l.flatMap(_.split(" ")) 
res21: List[String] = List(jack, joe, terry, jerry) 

注意:map分隔符操作返回的类型为 List[Array[String]],而flatMap分隔操作返回的类型为 List[String] 

实例2:每个元素映射为多个元素

scala> val rdd=Array(1,2,3)
rdd: Array[Int] = Array(1, 2, 3)
scala> val rdd2=rdd.flatMap(x=>x to 5)
rdd2: Array[Int] = Array(1, 2, 3, 4, 5, 2, 3, 4, 5, 3, 4, 5)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值