scala 聚合
1,par 指的是(并行)多线程聚合,有可能造成误差,但是外加上 foldLeft那么就会一个一个
2,flatten 属性将 list之中的小型list进行聚合到一个大的list之中
package day01
object Test7 {
def main(args: Array[String]): Unit = {
val arr = Array(1,2,3,4,5,6,7,8,9,10)
// 累加 fold par 是多线程
val arr1 = arr.par.fold(10)(_+_)
// 累加 左往右加
val res = arr.foldLeft(10)(_+_)
// 累减
val res1 = arr.foldLeft(10)(_-_)
// 虽然 par(并行) 但是 foldLeft还是串行
val arr2 = arr.par.foldLeft(10)(_-_)
//list 聚合
var list = List(List(1,2,3),List(3,4,5),List(2))
println(list.flatten.reduce(_+_)) //flatten list合并
// 首先小的 list 聚合 然后,list再进行全局聚合
val res12 = list.aggregate(0)(_+_.sum,_+_)
}
}
scala 交集,并集,差集是通过 union intersect diff来实现的
package day01
object Test8 {
def main(args: Array[String]): Unit = {
val li = List(5,6,7,8)
val li1 = List(1,2,5,6)
// 求并集
val res = li union li1
// 求交集
val res1 = li intersect li1
val res2 = li diff li1
}
}