实训内容
步骤任务:
1. 使用case class创建图书信息类Book:包含四个属性:ID,书名,作者,价格,数量。
2. 创建一个名为BookList的可变List,它只能用来保存Book的实例。
3. 初始化三本不同的书(注意id不同就是不同的书),加入到BookList中。
4. 添加一本已经存在的书。此时应该去修改BookList中对应书目的数量,而不是去添加一条新数据。
5. 根据图书名称查询是否在列表中(通过遍历列表对比名称)
6. 删除指定书名的书
7. 删除指定ID的书
8. 对于图书按价格从高到低排序。
9. 遍历图书列表,并打印每本书的详细信息
10. 展示全部的总的金额
运行代码
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, 1)
val book2 = Book(2, "怎样变成有钱人", "梦语", 100, 1)
val book3 = Book(3, "欢欢喜喜", "梦语", 50, 1)
BookList += book1
BookList += book2
BookList += book3
// 4
// val book4 = Book(3, "嘻嘻哈哈", "梦语", 50, 10)
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 删除指定名称的书
var bookName = "xix"
val rst1 = BookList.find(ele=>ele.name==bookName)
if(rst1.isDefined){
BookList -= rst1.get
println(s"删除${bookName}的书成功")
} else {
println(s"没有找到名称: ${bookName}的书")
}
// 7 删除指定ID的书
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 对图书按价格从高到低排序
val newList = BookList.sortWith((a, b) => {
a.price > b.price
})
// 9 遍历图书列表,并打印每本书的详细信息
newList.foreach(ele => {
println(s"${ele.id} ${ele.name} ${ele.price} ${ele.amount}本")
})
// 10 展示全部的总金额
var totalPrice = 0.0
newList.foreach(ele => {
totalPrice += ele.price * ele.amount
})
println(s"总价格: ${totalPrice}")
}
}