高阶函数(列举)

scala自带高阶函数

概述:可以接收一个函数的函数就是高阶函数

1.map

介绍:将集合中的每一个元素通过指定功能(函数)映射(转换)成新的结果集
map就是将list集合中的每个元素拿出来,然后根据你自己提供的 算法去计算处理,然后返回你需要的数据,可以是数组、集合、元组等

2.flatten

介绍:flat即压扁,压平,扁平化。效果就是将集合中的每个元素的子元素映射到某个函数并返回新的集合
flatten是将list中的多个集合进行元素合并(必须都是集合)集合中的元素必须是同一类型的数据

3.flatMap

介绍:先执行map,在执行flatten
flatMap就是把map和flatten结合在一起,先map再flatten

4.filter

介绍:将符合要求的数据,通过指定函数的筛选放置到新的集合中

fliter就是数据筛选,返回boolean类型,若为true数据保存,反之丢弃

5.reduce/reduceLeft/reduceRight

介绍:对集合中的元素进行归约操作

例如:

var list = List(1,2,3,4,5)
val i1: Int = list.reduce((v1,v2)=>v1-v2) //-13
val i2: Int = list.reduceLeft((v1,v2)=>v1-v2) //-13
val i3: Int = list.reduceRight((v1,v2)=>v1-v2) //3

6.fold/foldLeft/foldRight

介绍:fold函数将上一步返回的值作为函数的第一个参数继续传递参与运算

需求: 计算List集合中所有元素的和

var list = List(1,2,3,4,5)
val i1: Int = list.fold(6)((v1,v2)=>v1-v2) //-9
/*
v1***v2
6***1
5***2
3***3
0***4
-4***5
-9
*/

val i2: Int = list.foldLeft(6)((v1,v2)=>v1-v2) //-9
/*
v1***v2
6***1
5***2
3***3
0***4
-4***5
-9
*/

val i3: Int = list.foldRight(6)((v1,v2)=>v1-v2) //-3
/*
v1***v2
5***6
4***-1
3***5
2***-2
1***4
-9
*/
val list1 = List("a", "b", "c")
println(list1.fold("-")((v1,v2)=>v1+v2))  //-abc
println(list1.foldLeft("-")((v1,v2)=>v1+v2)) //-abc
println(list1.foldRight("-")((v1,v2)=>v1+v2))  //abc-
//若传入"" 则为将里面的拼接 输出abc

fold
若传入数字(Int)就按照reduce计算,第一次也进去循环体,直接计算
若传入子符串,则进行拼接,参考案例!

7.sorted/sorted.reverse

介绍:对集合中的元素进行排序

8.sortBy

介绍:对集合中元组的某个元素进行排序

9.groupBy

介绍:根据集合中包含元组进行分组

10.foreach

介绍:对集合进行遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值