scala练习_李孟_新浪博客

 2023-09-05 阅读 31 评论 0

摘要://创建一个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(_%
//创建一个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)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/1271.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息