1. 程式人生 > >Scala學習(一)---練習

Scala學習(一)---練習

 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))

  }
}