1.reduce函数,指定的二元操作即取2个元素进行操作,对集合中元素进行递归处理并最终将其合并为一个值
object learn1 {
def main(args: Array[String]): Unit = {
//定义一个数组
Array(1,2,3,4,5)
//求和(1,2,3,4,5)===>一个值
var res= Array(1,2,3,4,5).reduce((x,y)=>x+y)
println(res)
}
}
2.reduceLeft函数和reduceRight函数
object learn1 {
def main(args: Array[String]): Unit = {
//定义一个数组
Array(1,2,3,4,5)
//求和(1,2,3,4,5)===>一个值
// var res1= Array(1,2,3,4,5).reduce((x,y)=>x+y)
// var res2= Array(1,2,3,4,5).reduceLeft((x,y)=>x+y)
// var res3= Array(1,2,3,4,5).reduceRight((x,y)=>x+y)
// println(res1,res2,res3)
var res2= Array(1,2,3,4).reduceLeft((x,y)=>x-y)//-8
var res3= Array(1,2,3,4).reduceRight((x,y)=>x-y)//-2
println(res2,res3)
}
}
计算最大值
val res2=Array(-1,2,10,55).reduce((x,y)=>{
if (x>y) x else y
})
println(res2)
}
}
3.fold函数是一种集合操作,用于对集合元素进行聚合操作返回一个单一的值(需要一个额外初始的“种子”)
//fold:带初始值的reduce
//格式:fold(初始值)(二元函数==>返回值)
//val res1 = Array(1000, 1500, 1200, 1800, 2000).fold(100000)((x, y) => if (x,y) =>x+y)
//println(res1)
val res1=Array(1000,1500,1200,1800,2000).fold(100000)((x,y)=>if (x<y) y else x)
println(res1)
}
}
4.sorted(排序)函数。作用:排序直接使用元素的自然顺序进行排序
语法:数组.fold(初值)(函数)
// var arr1=Array(1,2,0,1,3,-1).sorted
var arr1=Array("a","b","park","zoom","school").sorted
//打印一个数组
arr1.foreach(println)
}
}
//数字a到零点的距离是|a-0|
Array(-1,0,1,3,2).sortWith((a,b)=>Math.abs(a-0)<Math.abs(b-0)).foreach(println)
}
}
//练习到2的距离
Array(-1,0,1,3,2).sortWith((a,b)=>Math.abs(a-2)>Math.abs(b-2)).foreach(println)
}
}
sortwith按特定规则排序