Scala学习第一天(十五):函数式编程(foreach遍历/map映射/flatMap扁平化映射/filter过滤/sort排序/groupBy分组/reduce聚合/fold折叠)

本文介绍了Scala中的函数式编程概念,包括使用foreach遍历,通过map、flatMap进行映射操作,使用filter进行过滤,用sort进行排序,通过groupBy进行分组,以及利用reduce和fold进行聚合操作。文中通过实例代码展示了每种操作的使用方法和执行结果。
摘要由CSDN通过智能技术生成

遍历(foreach)

格式

foreach(f: (A) ⇒ Unit): Unit

说明

foreach API 说明
参数 f:(A) => Unit 接收一个函数对象,函数的输入参数为集合的元素,返回值为空
返回值 Unit

foreach执行过程
在这里插入图片描述
示例

有一个列表,包含以下元素:1,2,3,4, 请使用foreach方法遍历打印每个元素

参考代码

// 定义一个列表
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

// 迭代打印
scala> a.foreach((x:Int)=>println(x))

执行结果
在这里插入图片描述

使用类型推断简化函数定义

scala可以自动来推断出来集合中每个元素参数的类型
创建函数时,可以省略其参数列表的类型

示例

1.有一个列表,包含以下元素:1,2,3,4,请使用foreach方法遍历打印每个元素
2.使用类型推断简化函数定义

参考代码

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

// 省略参数类型
scala> a.foreach(x=>println(x))

执行结果
在这里插入图片描述

使用下划线来简化函数定义

当函数参数,只在函数体中出现一次,且函数体没有嵌套调用时,可以使用下划线来简化函数定义

示例

1.有一个列表,包含以下元素:1,2,3,4,请使用foreach方法遍历打印每个元素
2.使用下划线简化函数定义

参考代码

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

a.foreach(println(_))

执行结果
在这里插入图片描述

如果方法参数是函数,如果出现了下划线,scala编译器会自动将代码封装到一个函数中
参数列表也是由scala编译器自动处理

映射(map)

集合的映射操作是将来在编写Spark/Flink用得最多的操作,
是我们必须要掌握的。
因为进行数据计算的时候,
就是一个将一种数据类型转换为另外一种数据类型的过程。

map方法接收一个函数,将这个函数应用到每一个元素,返回一个新的列表
在这里插入图片描述
格式

def map[B](f: (A) ⇒ B): TraversableOnce[B]

说明

map方法 API 说明
泛型 [B] 指定map方法最终返回的集合泛型
参数 f:(A) => B 传入一个函数对象,该函数接收一个类型A(要转换的列表元素),返回值为类型B
返回值 TraversableOnec[B] B类型的集合

map方法解析
在这里插入图片描述
案例一

1.创建一个列表,包含元素1,2,3,4
2.对List中的每一个元素加1

参考代码

scala> a.map(x=>x+1)
res5: List[Int] = List(2, 3, 4, 5)

执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值