Scala的基础小挑战o-o

28 阅读1分钟

题目:

使用 case class 创建图书信息类 Book:包含四个属性:ID,书名,作者,价格,数量。

创建一个名为 BookList 的可变 List,它只能用来保存 Book 的实例。

初始化三本不同的书(注意 id 不同就是不同的书),加入到 BookList 中。

添加一本已经存在的书。此时应该去修改 BookList 中对应书目的数量,而不是去添加一条新数据。

根据图书名称查询是否在列表中(通过遍历列表对比名称)

删除指定书名的书

删除指定 ID 的书

对于图书按价格从高到低排序。

遍历图书列表,并打印每本书的详细信息

展示全部的总的金额

package caseclass

import scala.collection.mutable.ListBuffer

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

  def main(args: Array[String]): Unit = {
    // 2
    val bookList: ListBuffer[Book] = ListBuffer()
    // 3
    val book1 = Book(1, "凡人修仙记", "梦语", 20.2, 1)
    val book2 = Book(2, "最强逆袭男主角", "梦语", 100, 1)
    val book3 = Book(3, "重生之超级保镖", "梦语", 50, 1)
    bookList += book1
    bookList += book2
    bookList += book3
    // 删除id为1的书
    // 7
//    val id = 1
//    bookList.remove(0)
    // 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")
  }
}

运行结果:

2 最强逆袭男主角 100.0
3 重生之超级保镖 50.0
1 凡人修仙记 20.2
总价格:170.2