用scala来做“买卖”

21 阅读1分钟

代码展示:

package caseclass

import scala.collection.mutable.ListBuffer

object caseclass3 {
  // 1
  case class Book(id:Int,name:String,author:String,price:Double, var amount:Int)

  def main(args: Array[String]): Unit = {
    // 2
    val BookList:ListBuffer[Book] = ListBuffer()
    // 3
    val book1 = Book(1,"剑来","烽火戏诸侯",88,50)
    val book2 = Book(2,"斗破苍穹","烽火戏诸侯",9.9,5)
    val book3 = Book(3,"你的婚礼","烽火戏诸侯",100,10)
    BookList += book1
    BookList += book2
    BookList += book3
    // 4
    val book4 = Book(4,"完美世界","梦雨",50,10)
    val rst4 = BookList.find(ele => ele.id == book4.id)
    if(rst4.isDefined){
      rst4.get.amount = rst4.get.amount + book4.amount
    }else{
      BookList += book4
    }


    //5查询是否存在
    var bookName = "你的婚礼"
    val rst0 = BookList.find(ele => ele.name == bookName)
    if(rst0.isDefined) {
      println(s"<《${bookName}》存在")
    }else {
      println(s"《${bookName}》不存在")
    }



   // 6.删除书名是剑来的书


      bookName = "剑来"
    val rst1 = BookList.find(ele=>ele.name==bookName)
    if(rst1.isDefined){
      BookList -= rst1.get
      println(s"删除书名是${bookName}的书成功")
    }else{
      println(s"没有找到书名是:${bookName}的书")
    }

    // 7.删除id为1的书
    val id = 1
    val rst2  = BookList.find(ele => ele.id==id)
    if (rst2.isDefined){
      BookList -= rst2.get
      println(s"删除id=${id}的书成功")
    }else{
      println(s"没有找到id=${id}的书")
    }

    // 8.sortWith
    val newList = BookList.sortWith((a,b)  => {
      a.price > b.price
    })
    // 9
    newList.foreach(ele =>{
      println(s"${ele.id} ${ele.name} ${ele.price}")
    })
    // 10
    var totalPrice = 0.0
    newList.foreach(ele =>{
      totalPrice += ele.price * ele.amount
    })
    println(s"总价格:${totalPrice}")
  }




}

结果展示:

Snipaste_2025-12-02_11-29-09.png

代码说明:

1.在项目1当中最后一个amount前缀加一个var是因为在5,6项目中需要更改元素,但是一般默认是val是不能够更改元素的,所以加上var,这样就构成了可以修改元素的条件

2.这些项目运用了集合List的用法