scala-35:List的map、flatMap、foreach、filter操作程式碼實戰
阿新 • • 發佈:2019-02-06
內容:
1、對list的map和flatmap實戰
2、對list的foreach和filter實戰
Map:對list中的多有元素執行一個具體的函式,結果為一個list;
Flatmap:對list的內部成員進行map,map的結果為一個list,然後在如果的基礎上進行flat將map操作後的結果進行合併;
Foreach:對list中成員執行一個函式,與map和flatmap不同的是,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))