[四、实训内容]
步骤任务:
1. 使用case class创建图书信息类Book:包含四个属性:ID,书名,作者,价格,数量。
2. 创建一个名为bookList的可变List,它只能用来保存Book的实例。
3. 初始化三本不同的书(注意id不同就是不同的书),加入到bookList中。
4. 添加一本已经存在的书。此时应该去修改bookList中对应书目的数量,而不是去添加一条新数据。
5. 根据图书名称查询是否在列表中(通过遍历列表对比名称)
6. 删除指定书名的书
7. 删除指定ID的书
8. 对于图书按价格从高到低排序。
9. 遍历图书列表,并打印每本书的详细信息
10. 计算全部总的金额
package asfasdf
import scala.collection.mutable.ListBuffer
case class Book(name: String, author: String, price: Double)
object caseclass03 {
def main(args: Array[String]): Unit = {
// 初始化可变List(ListBuffer)
val bookList = ListBuffer[Book]()
// 2. 创建3本图书并添加到尾部
val book1 = Book("Scala编程", "Martin Odersky", 89.0)
val book2 = Book("Java核心技术", "Cay S. Horstmann", 79.0)
val book3 = Book("Python入门到实践", "Eric Matthes", 69.0)
bookList.append(book1, book2, book3)
// 3. 创建1本图书并添加到头部
val book4 = Book("数据结构与算法", "Thomas H. Cormen", 99.0)
bookList.prepend(book4)
// 4. 创建1本图书并添加到第3个位置(索引从0开始,第3位对应索引2)
val book5 = Book("设计模式", "Erich Gamma", 85.0)
bookList.insert(2, book5)
// 5. 按书名查询是否存在(遍历比对名称)
val targetName = "Scala编程"
val isExist = bookList.exists(_.name == targetName)
println(s"图书《$targetName》是否存在:$isExist")
// 6. 删除第4本书(索引从0开始,第4位对应索引3)
if (bookList.size > 3) {
bookList.remove(3)
println("已删除第4本书")
}
// 7. 按价格从高到低排序(生成新的有序List)
val sortedBooks = bookList.sortBy(-_.price)
// 8. 遍历排序后的列表,打印每本书详情
println("\n排序后的图书列表:")
sortedBooks.foreach(book => println(s"书名:${book.name},作者:${book.author},价格:${book.price}元"))
// 9. 计算并展示总金额
val totalAmount = sortedBooks.map(_.price).sum
println(s"\n图书总金额:$totalAmount 元")
}
}