天天看點

scala練習_李孟_新浪部落格

    //建立一個List

    val lst0 = List(1,7,9,8,0,3,5,4,6,2)

    //将lst0中每個元素乘以10後生成一個新的集合

     val lst1=lst0.map(_*10)

    //将lst0中的偶數取出來生成一個新的集合

    //val lst2=for(e <- lst0 if e%2==0) yield e*1

    val lst2=lst0.filter(_%2==0)

    //将lst0排序後生成一個新的集合

    val lst3=lst0.sortWith((x,y)=>x

    //反轉順序

    val lst4=lst3.reverse

    //将lst0中的元素4個一組,類型為Iterator[List[Int]]

     val lst5=lst0.grouped(4)

    //将Iterator轉換成List

    val lst6=lst5.toList

    //将多個list壓扁成一個List

      val lst7=lst6.flatten

<b>wordcount:</b>

    val lines = List("hello tom hello jerry", "hello jerry", "hello kitty")

    //先按空格切分,在壓平

    //并行計算求和

    //k,v  彙總 排序

 val line4=lines3.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=&gt;(t._1,t._2.size)).toList.sortBy(_._2).reverse

    val line5=lines3.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.foldLeft(0)(_+_._2))

   foldLeft(0)(_+_._2)意思是((0+1)+1)....

      //折疊:有初始值(無特定順序)

val lst11=lst0.fold(100)((x,y)=&gt;x+y)

    //折疊:有初始值(有特定順序)

val lst12=lst0.foldLeft(100)((x,y)=&gt;x+y)

    //聚合

    val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0))

     val result=arr.aggregate(10)(_+_.sum,_+_) // 30

     val result2=arr.par.aggregate(10)(_+_.sum,_+_) // 60

    val num1 = List(5,6,4,7)

    val num2 = List(1,2,3,4)

    //求并集

    val num3=num1.union(num2).distinct

    //求交集

     val num4=num1.intersect(num2)

    //求差集

     val num5=num1.diff(num2)

繼續閱讀