reduce函数
作用
- reduce 是一种集合操作,用于对集合中的元素进行聚合操作,返回一个单一的结果。它通过指定的二元操作(即取两个元素进行操作)对集合中的所有元素进行递归处理,并最终将其合并为一个值。
- reduce具有方向性。
运算方法
将前两个数字运算之后。再与第三个数字运算,依次运算下去。
基本案例一
def main(args: Array[String]): Unit = {
//定义一个数组
val arr = Array(1,2,3,4,5)
val rst=arr.reduce((x,y) => x+y)
println(s"rst=${rst}")
}
基本案例二
//reduce求最值
def main(args: Array[String]): Unit = {
//定义一个数组
val arr = Array(-1,2,30,5)
//求最大值
val rst_max=arr.reduce((x,y) => if(x>y) x else y)
//求最小值
val rst_min=arr.reduce((x,y) => if(x<y) x else y)
println(s"rst_max=${rst_max}") //30
println(s"rst_min=${rst_min}") //-1
}
reduce_Left&reduce_Right
reduce具有方向性
基本案例
def main(args: Array[String]): Unit = {
//定义一个数组
val arr = Array(1,2,3,4)
//reduce ====reduceLeft
val rst_left=arr.reduceLeft((x,y) => x-y)
val rst_right=arr.reduceRight((x,y) => x-y)
println(s"rst_left=${rst_left}") //-8
println(s"rst_right=${rst_right}") //-2
}
fold函数
fold:与reduce类似,都是做聚合操作。但是,它有一个初始值。
基本案例
def main(args: Array[String]): Unit = {
//定义一个数组
val arr = Array(1,2,3,4)
//10 是初始值
val rst=arr.fold(10)((x,y) => x+y)
println(s"rst=${rst}") //20
}
sorted函数
对元素进行排序。
基本案例
//sorted排序
def main(args: Array[String]): Unit = {
//定义一个数组
// val arr = Array(-1,20,3,40)
//
// val rst=arr.sorted
// rst.foreach(println)
//对数值进行排序:从小到大排序
Array(-1,20,-100,3,40).sorted.foreach(println)
//对字符排序:按照字典顺序
Array("zip","bus","apple","banana","card").sorted.foreach(println)
}
sortWith
自定义排序规则
基本案例
//sortWith 自定义排序规则
def main(args: Array[String]): Unit = {
//对数值进行排序:按离0点的距离大小进行排序
//sortWith((x,y) => 布尔值)
//true: x应该要排在y的前面
//false: x应该要排在y的后面
//从小到大排序
Array(-1,2,0,4,9).sortWith((x,y) => Math.abs(x-0)<Math.abs(y-0)).foreach(println)
//从大到小排序
Array(-1,2,0,4,9).sortWith((x,y) => Math.abs(x-0)>Math.abs(y-0)).foreach(println)
}