scala List test

42 阅读1分钟
package ListAAA
/*
  1.创建图书信息类,包含三个属性:书名,作者,价格
  2.创建6本图书对象并添加到可变 List的尾部
  3.创建1本图书对象并添加到可变 List的头部
  4.根据图书名称将对象添加到列表 List的第3个位置
  5.根据图书名称查询是否在列表中(通过遍历列表对比名称)
  6.从列表中删除第4本书
  7.对于图书按价格从高到低排序。
  8.遍历图书列表, 并打印每本书的详细信息
  9.展示全部的总的金额
  */
import scala.collection.mutable.ListBuffer

//1. 
class Book(var bookName: String, var author: String, val price: Double) {}

object list3 {
  def main(args: Array[String]): Unit = {
    val bookList: ListBuffer[Book] = ListBuffer()

    //2. 
    val book1 = new Book("西游记", "吴承恩", 50.2)
    bookList += book1
    val book2 = new Book("三国演义", "罗贯中", 54.2)
    bookList += book2
    val book4 = new Book("红楼梦", "曹雪芹", 49.8)
    bookList += book4
    val book5 = new Book("水浒传", "施耐庵", 48.5)
    bookList += book5
    val book6 = new Book("朝花夕拾", "鲁迅", 32.0)
    bookList += book6
    val book7 = new Book("呐喊", "鲁迅", 29.9)
    bookList += book7

    //3. 添加1本图书到列表头部
    val book3 = new Book("凡人修仙传", "忘语", 30.0)
    bookList.prepend(book3)

    //4. 添加图书到第3个位置(索引为2,列表索引从0开始)
    bookList.insert(2, new Book("平凡的世界", "路遥", 50.0))

    //5. 
    val targetBookName = "平凡的世界"
    val isExist = bookList.exists(book => book.bookName == targetBookName)
    println(s"图书《$targetBookName》是否存在:$isExist")

    //6. 
    bookList.remove(3)

    //7. 
    val sortedBookList = bookList.sortWith((a, b) => a.price > b.price)

    //8. 遍历并打印每本书详细信息
    println("\n按价格从高到低排序后的图书列表:")
    sortedBookList.foreach(book => {
      println(s"书名:${book.bookName}, 作者:${book.author}, 价格:${book.price}元")
    })

    //9. 计算并展示全部图书的总金额
    val totalAmount = sortedBookList.map(_.price).sum 
    println(s"\n全部图书的总金额:${totalAmount}元")
  }
}