我们上文学习了scala中的list,现在来做一个list的编程题 做这个题目来检验一下自己是否真的学会了list的知识,如果有不会的可以用豆包来帮助自己
1,题目
代码:
package set
import scala.collection.mutable.ListBuffer
object list04 {
// 1. 定义图书信息类
case class Book(name: String, author: String, price: Double)
def main(args: Array[String]): Unit = {
// 2. 创建6本图书并添加到可变List尾部
val bookList = ListBuffer(
Book("《三体1》", "刘慈欣", 59.0),
Book("《百年孤独》", "加西亚·马尔克斯", 49.0),
Book("《活着》", "余华", 39.0),
Book("《小王子》", "圣-埃克苏佩里", 29.0),
Book("《白夜行》", "东野圭吾", 55.0),
Book("《人类简史》", "尤瓦尔·赫拉利", 69.0)
)
// 3. 添加1本图书到List头部
bookList.prepend(Book("《明朝那些事儿》", "当年明月", 79.0))
// 4. 添加1本图书到List的第3个位置(索引从0开始)
bookList.insert(2, Book("《哈利波特与魔法石》", "J.K.罗琳", 65.0))
// 5. 检查某图书是否存在(以《活着》为例)
val targetBook = "《活着》"
val isExist = bookList.exists(_.name == targetBook)
println(s"图书《活着》是否存在:$isExist")
// 6. 从列表中删除第4本书(索引为3)
if (bookList.size > 3) bookList.remove(3)
// 7. 按价格从高到低排序
val sortedList = bookList.sortBy(-_.price)
// 8. 遍历列表并打印每本书的信息
println("\n排序后的图书信息:")
sortedList.foreach(book =>
println(s"书名:${book.name},作者:${book.author},价格:${book.price}元")
)
// 9. 计算并展示总金额
val totalAmount = sortedList.map(_.price).sum
println(s"\n所有图书的总金额:${totalAmount}元")
}
}
运行结果: