高阶函数中的reduce,reduceleft,fold

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 复制代码
  }

}
相关推荐
特立独行的猫a1 分钟前
我用 Rust + Tauri 2 复刻了 N_m3u8DL-CLI:一个 m3u8 多线程下载器
开发语言·后端·rust·m3u8·视频下载器·m3u8dl-cli
月光有害2 分钟前
理解 Spring 依赖注入:从构造器注入到集合与条件 Bean
java·后端·spring
程序员雷欧5 分钟前
LongAdder
开发语言·python
码农进化录8 分钟前
Java 程序员的 AI 进化论 | 用 AI 生成 Spring Boot 脚手架,省下两小时重复劳动
java·spring boot·openai
鱼子星_17 分钟前
【C++】反向迭代器:反向迭代器的底层认识与模拟实现
开发语言·c++·笔记·stl
名字还没想好☜19 分钟前
Java 用 MethodHandle 替代反射:调用性能实测、invokeExact 的坑与缓存
java·开发语言·缓存·反射·methodhandle
SMF191921 分钟前
【Linux】完美解决缩略图工具gm调用java.io.FileNotFoundException: gm问题
java·开发语言·python
念何架构之路27 分钟前
路由注册:RouterGroup(routergroup.go)
开发语言·后端·golang
小当家.10530 分钟前
LLM服务缓存与连接池管理:三层缓存架构与ChatClient池化
java·后端·spring·缓存·llm·agent
Darkwanderor34 分钟前
C++的流简介和简单使用
开发语言·c++