大數據系列修煉-Scala課程37
核心內容:
1、List的foldLeft、foldRight、sort操作代碼實戰
1、List的foldLeft、foldRight、sort操作代碼實戰 |
1>foldLeft:函數體履行兩元素相加從左到右:即從1開始 foldRight:函數體履行兩元素相減從右到左:即從3開始
2>scala中的sortWith排序算法的效力還是很高的,為線性
實例程序:
//本程序是為了測試List中foldLeft、foldRight、sort操作代碼實戰
object App
{
//本節的重點是掌握List集合更重要的1些操作
def main(args:Array[String]):Unit=
{
val list = List(1,2,3)
var sum = 0
list.foreach((x:Int)=>sum+=x) //將函數作用在具體的數值上面
println(sum)
//z為初始值
println(list.foldLeft(0)(_+_)) //(3+(2+(1+0))) //函數體履行兩元素相加從左到右:即從1開始
println((0/:(1 to 3))(_+_)) //6
println(list.foldRight(2)(_-_)) //(1-(2-(3-2))) //函數體履行兩元素相減從右到左:即從3開始
println(((1 to 3 ):\2)(_-_)) //2
//sortWith排序算法的效力還是很高的
val list2 = list.sortWith((x,y)=>x<y) //如果變量在=>的右邊只出現1次,則可以用占位符替換它
println(list2.mkString("[", "\t", "]")) //[1 2 3]
val list3 = list.sortWith(_>_) //如果變量在=>的右邊只出現1次,則可以用占位符替換它
println(list3.mkString("[", "\t", "]")) //[3 2 1]
}
}
如有問題,歡迎留言指正!