Scala例题

复制代码
package Scala3

import scala.collection.mutable.ListBuffer

//1
case class Book(var ID:String,var bookName: String, var author: String,var price: Double,var number:Int) {

}
object timu {
  def main(args: Array[String]): Unit = {
    //2
    val BookList=ListBuffer[Book]()
    //3
    BookList+=new Book("001","西游记","吴承恩",23.4,100)
    BookList+=new Book("002","星际远航:宇宙边缘的探索者"," 林羽",69,100)
    BookList+=new Book("003","时间裂缝:错乱时空的冒险","苏晓",78,28)
    println(BookList)
    //4.添加一本书
    val book1=Book("002","星际远航:宇宙边缘的探索者"," 林羽",69,100)
//    //如果已经包含这本书,直接去修改数量
//    for(b<-BookList){
      println(b.ID)
//      if(b.ID==book1.ID){//同一本书
        println(b)
//        b.number+=book1.number
//        println(b)
//
//      }
//    }
    //查找,是否ID为book.ID的元素,找到就返回,没有找到,就返回None
    val rs=BookList.find(_.ID==book1.ID)
    println(rs)
    if(rs.isEmpty){
      println("没有")
      BookList+=book1
    }else{
      println("有")
      val s=rs.get//拿出具体的数据
      s.number+=book1.number//数量增加
    }
    //5,根据名称去查询
    var bookName="三体"
    val rs1=BookList.find(_.bookName==bookName)
    if(rs1.isEmpty){
      println(s"《$bookName》不存在")
    }else{
      println(s"《$bookName》存在")
    }

    //6.删除指定书名的书
    bookName = "三体"
    val rs2 = BookList.find(_.bookName == bookName)
    if (rs2.isEmpty) {
      println(s"《$bookName》不存在,删除失败")
    } else {
      println(s"《$bookName》存在,删除成功")
      BookList-=rs2.get
    }
    //7.删除指定ID
    var id = "三体"
    val rs3 = BookList.find(_.ID == id)
    if (rs3.isEmpty) {
      println(s"id:$id 不存在,删除失败")
    } else {
      println(s"id:$id 存在,删除成功")
      BookList -= rs3.get
    }

    //8.价格顺序
    val or=BookList.sortWith((a,b)=>a.price>b.price)
    println(or)
    //9.遍历
    BookList.foreach(el=>{
      println(s"书名:${el.bookName},作者:${el.author},价格:${el.price},数量:${el.number}")

    })
    //10.计算全部金额
    var sum:Double=0
    BookList.foreach((w=>{
      sum+=(w.number*w.price)
    }))
    println(s"总的金额是:${sum}")



    }


}
相关推荐
NPE~1 分钟前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
凡人叶枫11 分钟前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
春日见24 分钟前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
锐意无限28 分钟前
Swift 扩展归纳--- UIView
开发语言·ios·swift
低代码布道师28 分钟前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
宋小黑36 分钟前
JDK 6到25 全版本网盘合集 (Windows + Mac + Linux)
java·后端
念何架构之路1 小时前
Go进阶之panic
开发语言·后端·golang
先跑起来再说1 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
亓才孓1 小时前
[Properties]写配置文件前,必须初始化Properties(引用变量没执行有效对象,调用方法会报空指针错误)
开发语言·python
傻乐u兔1 小时前
C语言进阶————指针3
c语言·开发语言