高阶函数2

26 阅读1分钟

reduce:聚合

  • reduce函数需要一个函数作为参数,这个函数接受两个相同类型的参数,并返回一个值
object Base59 {
  def main(args: Array[String]): Unit = {
   var arr = Array(1,2,3,4,5)
    var sum = arr.reduce((x, y) => x + y)
    println(sum)
}
}

-求最大最小值

object Base60 {
  def main(args: Array[String]): Unit = {
   var arr = Array(-1,20,30,1)
    val max = arr.reduce((x,y) => if(x>y) x else y)
    println(max)

    val min = arr.reduce((x,y) => if(x<y) x else y)
    println(min)
}
}

fold :带初值的reduce

object Base61 {
  def main(args: Array[String]): Unit = {
   var arr = Array(1,2,3)
     val sum = arr.fold(100)((x,y)=>x+y)

    println(sum)
}
}

sorted

object Base62 {
  def main(args: Array[String]): Unit = {
   var arr = Array(-1,20,3,2,50)
    var arr1 = arr.sorted
    var arr2 = Array("banana","zip","b","a","apple")
    var arr3 = arr2.sorted
    arr3.foreach(println)
}
}

sortWith

object Base63 {
  def main(args: Array[String]): Unit = {
   var arr =Array(-1,0,1,3,2)
   var arr1 = arr.sortWith((a,b)=>Math.abs(a-3)< Math.abs(b-3))
   arr1.foreach(println)
}
}