题
写scala程序,完成如下功能。
1.创建图书信息类,包含三个属性:书名,作者,价格
2.创建6本图书对象并添加到可变 List的尾部
3.创建1本图书对象并添加到可变 List的头部
4.创建1本图书对象并添加到可变 List的第3个位置
5.根据图书名称查询是否在列表中(通过遍历列表对比名称)
6.从列表中删除第4本书
7.对于图书按价格从高到低排序。
8.遍历图书列表,并打印每本书的详细信息9.展示全部的总的金额
运行代码
package list
/**
* 写scala程序,完成如下功能。
* 1.创建图书信息类,包含三个属性:书名,作者,价格
* 2.创建6本图书对象并添加到可变 List的尾部
* 3.创建1本图书对象并添加到可变 List的头部
* 4.创建1本图书对象并添加到可变 List的第3个位置
* 5.根据图书名称查询是否在列表中(通过遍历列表对比名称)
* 6.从列表中删除第4本书
* 7.对于图书按价格从高到低排序。
* 8.遍历图书列表,并打印每本书的详细信息
* 9.展示全部的总的金额
*/
object list03 {
def main(args: Array[String]): Unit = {
import scala.collection.mutable.ListBuffer
// 1. 创建图书信息类
class Book(val name: String, val author: String, val price: Double) {
// 重写toString方法,方便打印图书信息
override def toString: String = s"书名:$name,作者:$author,价格:$price 元"
}
// 2. 创建可变List并添加6本图书到尾部
val bookList = new ListBuffer[Book]()
bookList += new Book("《Scala编程》", "Martin Odersky", 89.0)
bookList += new Book("《Java核心技术》", "Cay Horstmann", 108.0)
bookList += new Book("《Python编程:从入门到实践》", "Eric Matthes", 79.0)
bookList += new Book("《数据结构与算法分析》", "Mark Allen Weiss", 98.0)
bookList += new Book("《深入理解计算机系统》", "Randal E. Bryant", 128.0)
bookList += new Book("《机器学习实战》", "Peter Harrington", 69.0)
// 3. 添加1本图书到头部
bookList.prepend(new Book("《算法导论》", "Thomas H. Cormen", 139.0))
// 4. 添加1本图书到第3个位置(索引为2)
bookList.insert(2, new Book("《设计模式:可复用面向对象软件的基础》", "Erich Gamma", 78.0))
// 5. 根据图书名称查询是否存在
def searchBook(bookName: String): Boolean = {
for (book <- bookList) {
if (book.name == bookName) return true
}
false
}
val targetBook = "《Scala编程》"
println(s"查询图书'$targetBook'是否存在:${searchBook(targetBook)}")
// 6. 删除第4本书(索引为3)
bookList.remove(3)
// 7. 按价格从高到低排序
val sortedBooks = bookList.sortBy(_.price)(Ordering[Double].reverse)
// 8. 遍历并打印排序后的图书信息
println("\n按价格从高到低排序后的图书列表:")
sortedBooks.foreach(book => println(book))
// 9. 计算并展示总金额
val totalPrice = sortedBooks.map(_.price).sum
println(s"\n所有图书的总金额:$totalPrice 元")
}
}