scala常用的聚合函式
阿新 • • 發佈:2019-01-04
1.過濾:filter val list1 = List(1,2,3,4,5,6,7,8,9) val list2 = list1.filter(_%2==0) 2.foreach (注意和map的區別) val list3 = List(32,12,56,98,3) 注:如果用map遍歷會產生空的陣列 list3.map(x => println(x)) 但是foreach就不會 list3.foreach(x => println(x)) 3.化簡:reduce val list = List(1,2,3,4,5) list.reduce(_+_) 注意:底層呼叫的reduceLeft 4.集合並行化(計算機多核多執行緒操作 不指定並行任務 和計算機的核數有關) val list = List(1,2,3,4,5) list.par 注意:reduce支援平行計算 list.par.reduce(_+_) 5.摺疊 fold 指定初始值 同樣支援並行運算 list.par.fold(0)(_+_) 注意:如果不是並行運算 呼叫的是foldLeft()() 6.聚合(區域性求和 再彙總) val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0)) arr.aggregate(0)(_+_.reduce(_+_),_+_) arr.aggregate(10)(_+_.sum,_+_) arr.par.aggregate(10)(_+_.sum,_+_) 7.集合並交差 val l1 = List(5,6,4,7) val l2 = List(1,2,3,4) 7.1 求並集 l1.union(l2) 7.2 求交集 l1.intersect(l2) 7.3 求差集 l1.diff(l2)