Scala學習(一)---練習
阿新 • • 發佈:2018-12-25
Scala練習
object Demo01 { def main(args: Array[String]): Unit = { //建立一個List val lst0 = List(1,7,9,8,0,3,5,4,6,2) val arr = lst0.toArray //將lst0中每個元素乘以10後生成一個新的集合 val arr1 = for (e <- arr) yield e*10 val lst1 = arr1.toList //將lst0中的偶數取出來生成一個新的集合 val arr2 = arr.filter(_ % 2 == 0) val lst2 = arr2.toList //將lst0排序後生成一個新的集合 val lst3 = lst0.sortWith( (x,y) => x < y) //反轉順序 val lst4 = lst0.reverse //將lst0中的元素4個一組,型別為Iterator[List[Int]] val lst5 = lst0.grouped(4) //將Iterator轉換成List val lst6 = lst5.toList //將多個list壓扁成一個List val lst7 = lst6.flatten //先按空格切分,在壓平 val lines = List("hello tom hello jerry", "hello jerry", "hello kitty") val lst8 = lines.map( (line:String) => line.split(" ")).flatten //平行計算求和 val par = lst0.par val parSum = par.sum val parSum2 = par.reduce( _ + _) //化簡:reduce //將非特定順序的二元操作應用到所有元素 val sum2 = lst0.reduce( (x,y) => x + y) //摺疊:有初始值(無特定順序) val lst9 = lst0.fold(0)((x,y) => x + y) //摺疊:有初始值(有特定順序) val lst10 = lst0.foldLeft(0)((x,y) => x + y) //聚合 // val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0)) val l1 = List(3,5,6,4,7) val l2 = List(1,2,3,4,5) val set1 = l1.toSet val set2 = l2.toSet //求並集 println(set1.union(set2)) //求交集 println(set1.intersect(set2)) //求差集 println(set1.diff(set2)) } }