import scala.util.Random //(1)写一个伴生类与伴生对象,互相访问其成员(10分) /*class ZuoYe03 { val a = "张三" def getname(): Unit = { println(ZuoYe03.name + a) } } object ZuoYe03 { val name = "12456" def main(args: Array[String]): Unit = { val ye0 = new ZuoYe03 ye0.getname() } } //编写一个模式匹配小例子 object CaseDemo extends App{ var arr=Array("123","465","789") val obj =arr(Random.nextInt(arr.length)) obj match{ case "123" => println("123") case "456" => println("456") case _ => println("12345879") } } //(3)创建一个List集合,随机输入10个数(10分) //(4)使用map函数将List中每个数乘以100(10分) //(5)使用filter函数获取List中大于等于100的数(10分) //使用foreach函数将filter后的集合输出( object list extends App{ var list1 = List(100,3,4,500,6,7,8,9,1000,2) list1.map(i => i* 100).foreach(println) //定义函数 println() var filter=(i: Int) => if (i>=100) println(i) list1.foreach(filter) } //(7)使用递归方式,计算10的阶乘(10分) object digui extends App { def fun1(num: Int): Int = { if (num == 1) { num } else { num * fun1(num - 1) } } println(fun1(10)) } //(8)使用递归方式,计算1-100之和(10分) object sum extends App { def sum1(s :Int): Int ={ if(s ==1){ s }else{ s+sum1(s-1) } } println(sum1(100)) }*/ //(9)将以下(员工,工资)数据以元组的形式存放入List中(10分) //张三,3000 //李四,2000 //王五,1000 //赵六,3500 /* object list2 extends App { var list = List[Tuple2[String,Int]]() list = list :+ ("张三",3000) list = list :+ ("李四",2000) list = list :+ ("王五",1000) list = list :+ ("赵六",3500) list.foreach(println) println(list.map(i => i._2).reduce((x,y) => x+y)) }*/ //(10)使用reduce函数将员工的工资之和相加,并输出最终和(10分) //(1)将如下数据(学生姓名/分数/科目)以元组封装,并添加到List中(10分) //姓名 分数 科目 //张三 99 英语 //张三 87 数学 //张三 85 物理 //赵六 58 英语 //赵六 54 数学 //(2)循环list,打印出学生信息(10分) object list3 extends App { var list = List[Tuple3[String, Int, String]]() list = list :+ ("张三", 99, "英语") list = list :+ ("张三", 87, "数学") list = list :+ ("张三", 85, "物理") list = list :+ ("赵六", 58, "英语") list = list :+ ("赵六", 54, "数学") list.foreach(println) //(3)求出所有学生的分数的合计(10分) println("所有学生的分数的合计:" + list.map(i => i._2).reduce((x, u) => x + u)) //求出所有学生的平均分数 var i1 = list.map(i => i._2).reduce((x, u) => x + u) var i2 = i1 / list.size println("所有学生的平均分数:" + i2) //求出所有学生的最高分数 private val max: Int = list.map(i => i._2).max println("所有学生的最高分数"+max) //求出所有学生的最低分数 private val min: Int = list.map(i => i._2).min println("所有学生的最低分数"+min) //求出每个学生所有分数的合计 /*if(list.map(i => i._1).equals("张三")){ println(list.map(i => i._2).reduce((x,y)=>x+y)) }else{ println(list.map(i => i._2).reduce((x,y)=>x+y)) }*/ println("出每个学生所有分数的合计:"+list.groupBy(i => i._1 ).map(i =>{ var name = i._1 val ListName = i._2 name -> ListName.map(i => i._2).reduce(_+_) })) /*private val min1: Int = list.map(i => i._2 ).min println("所有学生的最低分数"+min1) */ println("每个学生分数的平均值:"+list.groupBy(i => i._1 ).map(i =>{ var name = i._1 val ListName = i._2 name -> ListName.map(i => i._2).reduce(_+_)/ListName.size })) println("求出每个学生最高的分数的科目:"+list.groupBy(i => i._1 ).map(i =>{ var name = i._1 val ListName = i._2 name -> ListName.map(i => i._2).max })) println("求出每个学生最低的分数的科目:"+list.groupBy(i => i._1 ).map(i =>{ var name = i._1 val ListName = i._2 name -> ListName.map(i => i._2).min })) //(11)求出2个学生的分数倒序排序前2门科目(10分) println("求出每个学生最低的分数的科目:"+list.groupBy(i => i._1 ).map(i =>{ var name = i._1 val ListName = i._2 name -> ListName.map(i => i._2).reverse })) }
scala 小练习
最新推荐文章于 2022-03-05 23:04:00 发布