1. 程式人生 > >scala-35:List的map、flatMap、foreach、filter操作程式碼實戰

scala-35:List的map、flatMap、foreach、filter操作程式碼實戰

內容:

1、對listmapflatmap實戰

2、對listforeachfilter實戰

Maplist中的多有元素執行一個具體的函式,結果為一個list

Flatmap:對list的內部成員進行mapmap的結果為一個list,然後在如果的基礎上進行flatmap操作後的結果進行合併;

Foreachlist中成員執行一個函式,與mapflatmap不同的是,foreach產生的結果是Unit

Filter過濾出list中符合條件的元素,filter執行的結果為Boolean 型別的函式。

   println(List(1, 2, 3, 4, 6) map (_ + 1))
//map(_+1)為對list元素+1的執行函式, 等價於map(item=>item+1)
    val data = List("Scala", "Hadoop", "Spark")
    println(data map (_.length))
    println(data map (_.toList.reverse.mkString))
//tolist將字串重新轉化為list,reverse.mkString將字串顛倒,輸出結果	  為:list(alacS,poodaH,krapS)

    println(data.map(_.toList))
println(data.flatMap(_.toList))
//結果為:list(S,c,a,l,a,H,a,d,o,o,p,S,p,a,r,k)
    println(List.range(1, 10) flatMap (i => List.range(1, i) map (j => (i, j))))
    		//j=>(i,j)為tuple元組,結合flatmap和map;range(i,j)為左閉右開
    var sum = 0
    List(1, 2, 3, 4, 5) foreach (sum += _)
    println("sum : " + sum)
    
    println(List(1, 2, 3, 4, 6, 7, 8, 9, 10) filter (_ % 2 ==0))//取偶
    println(data filter (_.length == 5))