目录
聚合操作
聚合 reduce
定义
案例
折叠 fold
定义
案例
聚合操作
聚合操作,可以将一个列表中的数据合并为一个。这种操作经常用来统计分析中
聚合 reduce
reduce表示将列表,传入一个函数进行聚合计算
定义
方法签名
defreduce[A1 >:A](op:(A1,A1)⇒ A1):A1
方法解析
reduce执行流程分析
[!NOTE]
reduce和reduceLeft效果一致,表示从左到右计算reduceRight表示从右到左计算
案例
定义一个列表,包含以下元素:1,2,3,4,5,6,7,8,9,10
使用reduce计算所有元素的和
参考代码
scala>vala =List(1,2,3,4,5,6,7,8,9,10)a:List[Int]=List(1,2,3,4,5,6,7,8,9,10)scala>a.reduce((x,y)=>x +y)res5:Int=55// 第一个下划线表示第一个参数,就是历史的聚合数据结果// 第二个下划线表示第二个参数,就是当前要聚合的数据元素scala>a.reduce(_ +_)res53:Int=55// 与reduce一样,从左往右计算scala>a.reduceLeft(_ +_)res0:Int=55// 从右往左聚合计算scala>a.reduceRight(_ +_)res1:Int=55
折叠 fold
fold与reduce很像,但是多了一个指定初始值参数
定义
方法签名
deffold[A1 >:A](z:A1)(op:(A1,A1)⇒ A1):A1
方法解析
[!NOTE]
fold和foldLet效果一致,表示从左往右计算foldRight表示从右往左计算
案例
定义一个列表,包含以下元素:1,2,3,4,5,6,7,8,9,10
使用fold方法计算所有元素的和
参考代码
scala>vala =List(1,2,3,4,5,6,7,8,9,10)a:List[Int]=List(1,2,3,4,5,6,7,8,9,10)scala>a.fold(0)(_ +_)res4:Int=155