scala练习

mac2024-05-24  30

1.统计 一句话中的单词个数与一串字母中字母出现的个数 package com.uu.bigdata.scala.howework object Work { def main(args: Array[String]): Unit = { var st = "what is my name what is my name what is my name what" var st1 = st.split(" ") var st2 = st1.foldLeft(Map[String,Int]())((x,y)=> x+(y -> (x.getOrElse(y,0)+1))) st2.foreach(x=>println(x._1+"有"+x._2+"个")) var sr = "jdkjfksklfjdlkjflksdjfkldsjflkdsjflds" var sr1 = sr.foldLeft(Map[Char, Int]())((x, y) => x + (y -> (x.getOrElse(y, 0) + 1))) sr1.foreach(x => println(x._1 + "有" + x._2+ "个")) } } 2给工资列添加值 package com.uu.bigdata.scala.howework object Work2 { def main(args: Array[String]): Unit = { var a1 = ( "张三",3000) var a2 = ( "李四",2000) var a3 = ( "王五",4000) var a4 = ( "赵柳",3100) val list = List[Tuple2[String,Int]](a1,a2,a3,a4) println(list) var list1 = list.map(x=>(x._1,(x._2*1.1).toInt)) println(list1) } } 3.scala实现排序 从小到大的排序。 将list分为小于头元素的部分与等于大于头元素的部分。 大于头元素的部分继续执行分list的方法。 def quickSort(a:List[Int]):List[Int]={ if (a.length < 2) a else quickSort(a.filter(_ < a.head)) ++ a.filter(_ == a.head) ++ quickSort(a.filter(_ > a.head)) } 4输出10到1之间的偶数 Range包含头不包含尾 for (i<- Range(10,0,-1)) print(i+" ") 5定义一个匿名方法 var ss=(x:Int)=> x+2 6定义一个函数作为形参传入方法中 package com.uu.bigdata.scala.day02 object Ceshi { def main(args: Array[String]): Unit = { print(jiaEr(ss,3)) } var ss=(x:Int)=> x+2 def jiaEr(f:(Int)=>Int,x:Int): Int ={ f(x) } } 7自定义get与set方法 主要是格式 被定义的内容以_来开头。设置有无_的属性来被访问。 class Dog2 { private var _leg = 4 def leg = _leg def leg_=(newLeg: Int) { _leg = newLeg } }
最新回复(0)