package day02
/**
* 函數(shù)編程練習(xí)之常用方法
* reduce
* fold
* aggregate
* 交并差集
*/
object Exercise {
def main(args: Array[String]): Unit = {
// 創(chuàng)建一個(gè)List
val list0 = List(5,7,1,9,3,8,6,2,0,4)
//將lst0中每個(gè)元素乘以2后生成一個(gè)新的集合
val list1 = list0.map(_ * 2)
//將lst0中的偶數(shù)取出來生成一個(gè)新的集合
val list2 = list0.filter(_ % 2 == 0)
//將lst0排序后生成一個(gè)新的集合
val list3 = list0.sorted
//反轉(zhuǎn)排序順序
val list4 = list3.reverse
//將lst0中的元素4個(gè)一組,類型為Iterator[List[Int]]
val it = list0.grouped(4)
//將Iterator轉(zhuǎn)換成list
val list5 = it.toList
//將多個(gè)list壓扁成一個(gè)list
val list6 = list5.flatten
val lines = List("hello java hello scala","hello scala","hello python")
//先按空格切分,再壓平
// val words = lines.map(_.split(" "))
// val flatWords = words.flatten
// val res = lines.flatMap(_.split(" "))
//并行計(jì)算求和
val arr = Array(1,2,3,4,5,6,7,8,9,10)
//和線程有關(guān),每個(gè)線程計(jì)算一部分,( (1+2+3+4) + (5+6+7+8) +(9+10) )
// val res = arr.sum
// val res = arr.par.sum
//按照特定的順序進(jìn)行聚合
// (((1+2)+3)+4)+5....
// val res = arr.reduce(_+_)
// val res = arr.reduceLeft(_+_)
// 實(shí)現(xiàn)并行方式進(jìn)行聚合
// val res = arr.par.reduce(_+_)
// val res = arr.par.reduce(_-_)
//折疊,有初始值(無特定順序)
// val res = arr.par.fold(10)(_+_)
//折疊,有初始值(有特定順序)
// val res = arr.foldLeft(10)(_+_)
// val res = arr.foldRight(10)(_+_)
// val res = arr.foldLeft(10)(_-_)
// val res = arr.par.foldLeft(10)(_-_)
//聚合
val list7 = List(List(1,2,3),List(3,4,5),List(2),List(0))
// val res = list7.flatten.reduce(_+_)
// val res = list7.aggregate(0)(_+_.sum,_+_)
val l1 = List(5,6,4,7)
val l2 = List(1,2,3,4)
//求并集
// val res = l1 union l2
//求交集
// val res = l1 intersect l2
//求差集
val res = l1 diff l2
println(res)
}
}
函數(shù)式編程練習(xí)之常用方法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 1、List的創(chuàng)建 Scala 列表類似于數(shù)組,它們所有元素的類型都相同,但是它們也有所不同:列表是不可變的,值一...
- 函數(shù)式接口使用背景 我們知道,java是一門面向?qū)ο缶幊陶Z言,java中一切都是面向?qū)ο蟮模ǔ嗽紨?shù)據(jù)類型)。在...