- 使用 case class 创建图书信息类 Book:包含四个属性:ID,书名,作者,价格,数量。
- 创建一个名为 BookList 的可变 List,它只能用来保存 Book 的实例。
- 初始化三本不同的书(注意 id 不同就是不同的书),加入到 BookList 中。
- 添加一本已经存在的书。此时应该去修改 BookList 中对应书目的数量,而不是去添加一条新数据。
- 根据图书名称查询是否在列表中(通过遍历列表对比名称)
- 删除指定书名的书
- 删除指定 ID 的书
- 对于图书按价格从高到低排序。
- 遍历图书列表,并打印每本书的详细信息
- 展示全部的总的金额
package caseclass
import scala.collection.mutable.ListBuffer
object caseclass4 {
// 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, "姐姐和我交换人生吧", "梦语", 20.2, 10)
val book2 = Book(2, "暗恋你,我也是", "梦语", 100.8, 3)
val book3 = Book(3, "养女归来", "梦语", 50, 5)
BookList += book1
BookList += book2
BookList += book3
//4
//val book4=Book(3."养女归来","梦语", 50, 5)
val book4=Book(4,"九岁神探","梦语", 50, 15)
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("删除id=$id的书成功")
} else {
println("没有找到id=$id的书")
}
// 8
val newList =BookList.sortWith((a,b) =>{
a.price >b.price
})
// 9
BookList.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}")
}
}
运行结果如下: