0
点赞
收藏
分享

微信扫一扫

scala 集合案例

青鸾惊鸿 2022-02-13 阅读 41
object 案例 {

  def main(args: Array[String]): Unit = {
    // 1.定义列表,记录学生的成绩,格式为:姓名,语文成绩,数学成绩,英语成绩,学生信息如下:
    // ("张三",37,90,100),("李四",90,73,81),("王五",60,90,76),("赵六",59,21,72),("田七",100,100,100)
    val stuList = List(
      ("张三", 37, 90, 100),
      ("李四", 90, 73, 81),
      ("王五", 60, 90, 76),
      ("赵六", 59, 21, 72),
      ("田七", 100, 100, 100)
    )
    // 2.获取所有语文成绩在60分及以上的同学信息
    // val chineseList = stuList.filter(x => x._2 >= 60)
    // 简写
    val chineseList = stuList.filter(_._2 >= 60)
    println(s"chineseList:$chineseList")

    // 3.获取所有学生的总成绩
    /**
     * x表示集合中每一个元素:("张三", 37, 90, 100) -> (张三,227)
     * x._1:姓名
     * x._2 + x._3 + x._4:语文成绩 + 数学成绩 + 英语成绩
     */
    val totalScoreList = stuList.map(x => x._1 -> (x._2 + x._3 + x._4))
    println(s"totalScoreList:$totalScoreList")

    // 4.按照总成绩降序排列
    // totalScoreList:List((张三,227), (李四,244), (王五,226), (赵六,152), (田七,300))
    /**
     * x:表示前一个元素:(张三,227)
     * y:表示后一个元素:(李四,244)
     */
    // val sortList = totalScoreList.sortWith((x, y) => x._2 > y._2)
    // 简写
    val sortList = totalScoreList.sortWith(_._2 > _._2)
    println(s"sortList:$sortList")

  }

}

举报

相关推荐

0 条评论