Scala的case class习题

Scala 复制代码
import scala.collection.mutable.ListBuffer
case class Book(id:String,bookName:String,author:String,price:Double,var amount:Int)

object p4 {
  def main(args: Array[String]): Unit = {
    //2
    val BookList = ListBuffer[Book]()

    //3
    BookList += Book("001", "b1", "a1", 23, 42)
    BookList += Book("002", "b2", "a2", 55, 77)
    BookList += Book("003", "b3", "a3", 82, 11)
    println(BookList)

    //4
    val book1 =Book("004", "b4", "a4", 30, 24)
//如果已经包含这本书,直接去修改数量
    val rs=BookList.find(_.id==book1.id)
    if(rs.isEmpty){
      println("没有")
      BookList+=book1
    }else{
      println("有")
      val s=rs.get//拿出具体的数据
      s.amount+=book1.amount//数量增加
    }

    //5
    var bookName="b4"
    val rs1=BookList.find(_.bookName==bookName)
    if(rs1.isEmpty)
      println(s"《$bookName》不存在")
    else
      println(s"《$bookName》存在")

    //6
    bookName = "b1"
    val rs2 = BookList.find(_.bookName == bookName)
    if (rs2.isEmpty)
      println(s"《$bookName》不存在,删除失败")
    else {
      println(s"《$bookName》存在,删除成功")
      BookList-=rs2.get
    }

    //7
    val id = "002"
    val rs3=BookList.find(_.id==id)
    if(rs3.isEmpty)
      println(s"$id 不存在,删除失败")
    else {
      println(s"$id 存在,删除成功")
      BookList-=rs3.get
    }

    //8
    val orderList=BookList.sortWith((a,b)=>a.price>b.price)

    //9
    orderList.foreach(el=>{
      println(s"书名${el.bookName},作者${el.author},价格${el.price},数量${el.amount}")
    })

    //10
    var sum:Double=0
    BookList.foreach((el=>{
      sum+=(el.amount*el.price)
    }))
    println(s"总的金额是:${sum}")
  }
}
相关推荐
linweidong14 天前
一站式用AI编程神奇Cursor/Trae(VScode环境)开发运行Scala应用
大数据·vscode·后端·大模型·scala·ai编程·cursor
白总Server23 天前
GaussDB 分布式数据库调优(架构到全链路优化)
java·网络·c++·架构·go·scala·数据库架构
小伍_Five24 天前
spark数据处理练习题番外篇【下】
java·大数据·spark·scala
无人赴约的cat1 个月前
【20250607接单】Spark + Scala + IntelliJ 项目的开发环境配置从零教学
大数据·spark·scala
小伍_Five1 个月前
spark数据处理练习题番外篇【上】
java·大数据·spark·scala
渣渣盟1 个月前
基于Scala实现Flink的三种基本时间窗口操作
开发语言·flink·scala
zhojiew1 个月前
关于akka官方quickstart示例程序(scala)的记录
后端·scala
小伍_Five1 个月前
Spark实战能力测评模拟题精析【模拟考】
java·大数据·spark·scala·intellij-idea
黄雪超1 个月前
DataStreamAPI实践原理——快速上手(实操详细版)
大数据·flink·scala
白总Server1 个月前
C++语法架构解说
java·网络·c++·网络协议·架构·golang·scala