case class实训例题

14 阅读1分钟

一.实训例题

1. 使用case class创建图书信息类Book:包含四个属性:ID,书名,作者,价格。

2. 创建一个名为bookList的可变List,它只能用来保存Book的实例。

3. 初始化三本不同的书(注意id不同就是不同的书),加入到bookList中。

4. 添加一本已经存在的书。提示图书已存在。

5. 添加一本新书,提示图书添加成功。

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

7. 删除指定书名的书

8. 删除指定ID的书

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

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

package caseclass

import scala.collection.mutable.ListBuffer
object caseclass03 {
  case class Book(id:String,bookName:String,outhor:String,price:Double)
  def main(args: Array[String]): Unit = {
   val book1 = Book("001","高效能人士的七个习惯","韦伯",50)
    val book2 = Book("002","沉思录","皇帝",20)
    val book3 = Book("003","自控力","xx",3)
    //2,3
    val bookList =  scala.collection.mutable.ListBuffer(book1,book2,book3)
    val book4 = Book("001","高效能人士的七个习惯","韦伯",10)
    //4,5
    if(addNewBook(bookList,book4)) {
      println("添加成功")
    } else{
      println("图书已存在,添加失败")
    }
    //6
    val bookName= "沉思录"
    if(queryBook(bookList,bookName)) {
      println(s"<<${bookName}>>存在")
    }else{
      println(s"<<${bookName}>>不存在")
    }
    //7,8
    delBook(bookList,bookName)
    // 9
    val orderBookList = bookList.sortBy(_.price).reverse
    // 10
    bookList.foreach(ele =>{
     println(s"书名:《${ele.bookName}》")
      println(s"作者:《${ele.outhor}》")
     println()
    })
  }
  def delBook(bookList: ListBuffer[Book], bookName: String):Boolean = {
    // 检查图书是否存在
    val result = bookList.find(_.bookName == bookName)
    if(result.isDefined){
      bookList -= result.get
      true
    } else {
      false
    }
  }
  def queryBook(bookList: ListBuffer[Book], bookName: String):Boolean = {
    bookList.exists(_.bookName == bookName)
  }
   def addNewBook(bookList: ListBuffer[Book], book:Book):Boolean={
     //检查图书是否存在
     if(bookList.exists(_.id==book.id)){
       false
     }else{
       bookList+=book
       true
     }
   }
}

image.png