文章目录
- 功能函数
- 1.功能函数处理集合数据
- 2.扁平化操作
- 3.按照指定条件将数据集中的数据进行过滤
- 4.集合通过 自定义函数进行分组
- 5.mapValues
- 6.sortBy函数
功能函数
1.功能函数处理集合数据
–集合的功能函数 map
List --> map( logical ) --> newList
–实现一个不确定的功能,但是这个功能的主要目的是将数据集中的每一条数据进行处理后返回一个新的集合
–scala已经封装好了,提供了可以自动转换的操作,具体逻辑由开发人员自己提供; map方法
–map函数需要传入函数类型
–可变集合不可变集合都适用
–功能函数一般都是使用匿名函数
import scala.collection.mutable
val list = mutable.Seq(2, 0, 4, 8)
list.map(_ * 2) //map操作不改变原始集合
2.扁平化操作
import scala.collection.mutable
val list = mutable.Seq(2, 0, 4, 8)
// println(list.map(_ * 2)) //map操作不改变原始集合 //此处的下划线表示占位符,就表示每一条数据
–List(List(2,0),List(4,8))扁平化操作就是将复杂数据集合,中取出单个独立的数据
–flatten扁平化操作会将String类型当作char数组使用
// --flatten扁平化操作会将String类型当作char数组使用
var list2 = List("hello lilei", "hello fanbingbing")
println(list2.flatten)
–可以进行自定义函数扁平化flatMap()
val strings = list2.flatMap(
str => str.split(" ") //直接将str 进行变化即可
)
println(strings) //List(hello, lilei, hello, fanbingbing)
3.按照指定条件将数据集中的数据进行过滤
list.filter(num => true)
–filter函数需要传入函数对象
4.集合通过 自定义函数进行分组
val list3 = mutable.Seq(1, 3, 4, 8)
val intToInts = list3.groupBy(
num => {
if (num % 2 == 0) {
0
} else {
1
}
}
)
print(intToInts)
API使用groupby,传参传入的是一个函数对象类型
传入指定标记,标记没有指定写法
5.mapValues
--mapValues函数,其操作Map集合中V的变化的函数
val map = mutable.Map("a" -> 2, "b" -> 3, "c" -> 4)
val stringToInt = map.mapValues(
num => num * 2
)
println(stringToInt)
6.sortBy函数
按照指定顺序进行排序。sortBy默认情况下升序排序
// sortBy
var list4 = List(2,0,4,8)
println(
list4.sortBy(
num => num //按照数字大小排序
)
)
如果是想要降序排序,需要传入逻辑柯里化操作,在排序逻辑旁边不需要加逗号,直接加括号即可;