Scala
object Test_gjhs2 {
def main(args: Array[String]): Unit = {
reduce:
Scala
//定义一个数组
Array(1,2,3,4,5)
//求和 (1,2,3,4,5) ===> 一个值
val res = Array(1,2,3,4,5).reduce((x,y)=> x+y)
println(res)//15
Scala
val res2 = Array(1,2,3,4).reduceLeft((x,y)=> x - y) //-8
val res3 = Array(1,2,3,4).reduceRight((x,y)=> x - y)//-2
println(res2,res3)
Scala
val res4 = Array(-1,2,10,55).reduce((a,b)=>{
if(a>b)a else b //求最大值
})
println(res4)//55
Scala
val res5 = Array(-1,2,10,55).reduce((a,b)=>{
if(a<b)a else b //求最小值
})
println(res5)
fold :
Scala
// fold:作用:带初始值的reduce
// 格式:fold(初始值)(二元函数=>返回值)
val res1 = Array(1000,1500,1200,1800,2000).fold(100000)((x,y)=>if(x>y) y else x)
println(res1)//1000
Scala
// 排序
// sorted:按自然顺序对数组元素排序(数字:从小到大,字母:字典顺序),返回排序之后的新数组
// var arr1 Array(1.2,0,1.3,-1).sorted
// 主要不要加()
var arr1 =Array("a","b","apple","park","zoom","school" ).sorted
// //打印一个数组
// arr1.foreach(println)
//sortWith:排序函数返回true表示第一个元素应该排在第二个元素之前
// Array(-1,0,1,3,2).sortWith((a,b)=>bollean)
//数字a,到0点的距离是|a-0|
Array(-1,0,1,3,2).sortWith((a,b)=>Math.abs(a-0) < Math.abs(b-0) ).foreach(println)//0 -1 1 2 3
//练习:按它们到2点的距离从大到小排序
Array(-1,0,1,3,2).sortWith((a,b)=>Math.abs(a-2) > Math.abs(b-2) ).foreach(println)//-1 0 1 3 2
Scala
}
}