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
    wordcount:
    val lines = List("hello tom hello jerry", "hello jerry", "hello kitty")
    //先按空格切分,在压平
    //并行计算求和
    //k,v  汇总 排序
 val line4=lines3.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(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)=>x+y)

    //折叠:有初始值(有特定顺序)
val lst12=lst0.foldLeft(100)((x,y)=>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)
posted @ 2017-08-16 03:04  Dlimeng  阅读(7)  评论(0)    收藏  举报  来源