scala的List练习题

36 阅读2分钟

步骤任务:

1.创建图书信息类,包含三个属性:书名,作者,价格

2.创建6本图书对象并添加到可变 List的尾部

3.创建1本图书对象并添加到可变 List的头部

4.创建1本图书对象并添加到可变 List的第3个位置

5.根据图书名称查询是否在列表中(通过遍历列表对比名称)

6.从列表中删除第4本书

7.对于图书按价格从高到低排序。

8.遍历图书列表,并打印每本书的详细信息

9.展示全部的总的金额

package list

import scala.collection.mutable.ListBuffer
//1.创建图书信息类,包含三个属性:书名,作者,价格
class Book(var bookName:String, var author:String, val price:Double){}

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

    //2.创建6本图书对象并添加到可变 List的尾部
    val book1 = new Book("西游记","吴承恩",50.2)
    bookList += book1
    val book2 = new Book("三国演义","罗贯中",54.2)
    bookList += book2
    val book3 = new Book("红楼梦","曹雪芹",59.7)
    bookList += book3
    val book4 = new Book("水浒传","施耐庵",56.8)
    bookList += book4
    val book5 = new Book("朝花夕拾","鲁迅",52.6)
    bookList += book5
    val book6 = new Book("昆虫记","法布尔",57.3)
    bookList += book6

    //3.创建1本图书对象并添加到可变 List的头部
    val book7 = new Book("凡人修仙传","忘语",30)
    bookList.prepend(book7)

    //4.创建1本图书对象并添加到可变 List的第3个位置
    bookList.insert(2,new Book("平凡的世界","路遥",50))

    //5.根据图书名称查询是否在列表中(通过遍历列表对比名称)
    def searchBookByName(bookName:String):Boolean = {
      for (book <- bookList) {
        if (book.bookName == bookName) {
          return true
        }
      }
      false
    }

    //6.从列表中删除第4本书
    bookList.remove(3)

    //7.对于图书按价格从高到低排序。
    val newBookList = bookList.sortWith((a:Book,b:Book) => {
      a.price > b.price
    })

    //8.遍历图书列表,并打印每本书的详细信息
    newBookList.foreach(book => {
      println(s"书名:${book.bookName},作者:${book.author},价格:${book.price}")

    //9.展示全部的总的金额
      val totalPrice = bookList.map(_.price).sum
      println(s"图书总金额:${totalPrice}")
    })
  }
}

运行结果如图:

image.png