高阶函数的应用

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按特定规则排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值