Scala练习题
1.使用case class创建图书信息类Book:包含四个属性:ID,书名,作者,价
格,数量。
2.创建一个名为BookList的可变List,它只能用来保存Book的实例。
3.初始化三本不同的书(注意id不同就是不同的书),加入到BookList中。
4.添加一本已经存在的书。此时应该去修改BookList中对应书目的数量,而不
是去添加一条新数据。
5.根据图书名称查询是否在列表中(通过遍历列表对比名称)
6.删除指定书名的书
7.删除指定ID的书
8.对于图书按价格从高到低排序。
9.遍历图书列表,并打印每本书的详细信息
10.展示全部的总的金额
//1.使用case class创建图书信息类Book:包含四个属性:ID,书名,作者,价格,数量。
case class Book(id: Int, title: String, author: String, price: Double, quantity: Int)
object BookListExercise {
import scala.collection.mutable.ListBuffer
//2.创建一个名为BookList的可变List,它只能用来保存Book的实例。
val BookList = ListBuffer[Book]()
//3.初始化三本不同的书(注意id不同就是不同的书),加入到BookList中。
def main(args: Array[String]): Unit = {
// 初始化三本不同的书
val book1 = Book(1, "Scala 入门指南", "作者 A", 30.0, 5)
val book2 = Book(2, "函数式编程实战", "作者 B", 40.0, 3)
val book3 = Book(3, "Scala 高级编程", "作者 C", 50.0, 4)
BookList += book1
BookList += book2
BookList += book3
//4.添加一本已经存在的书。此时应该去修改BookList中对应书目的数量,而不是去添加一条新数据。
// 添加一本已经存在的书
val existingBook = Book(1, "Scala 入门指南", "作者 A", 30.0, 2)
addBook(existingBook)
//5.根据图书名称查询是否在列表中(通过遍历列表对比名称
val bookNameToFind = "函数式编程实战"
println(s"Is book '$bookNameToFind' in the list? ${isBookInListByName(bookNameToFind)}")
//6.删除指定书名的书
val bookNameToRemove = "Scala 高级编程"
removeBookByName(bookNameToRemove)
//7.删除指定ID的书
val idToRemove = 2
removeBookById(idToRemove)
//8.对于图书按价格从高到低排序
val sortedBooksByPrice = BookList.sortBy(-_.price)
//9.遍历图书列表,并打印每本书的详细信息
println("Books in the list:")
sortedBooksByPrice.foreach(book => println(s"ID: ${book.id}, Title: ${book.title}, Author: ${book.author}, Price: ${book.price}, Quantity: ${book.quantity}"))
//10.展示全部的总的金额
val totalAmount = BookList.map(book => book.price * book.quantity).sum
println(s"Total amount: $totalAmount")
}
// 添加书,如果已存在则增加数量
def addBook(book: Book): Unit = {
val existingBookOption = BookList.find(_.id == book.id)
existingBookOption match {
case Some(existingBook) =>
val updatedQuantity = existingBook.quantity + book.quantity
BookList.update(BookList.indexOf(existingBook), existingBook.copy(quantity = updatedQuantity))
case None => BookList += book
}
}
// 根据名称判断书是否在列表中
def isBookInListByName(name: String): Boolean = {
BookList.exists(_.title == name)
}
// 根据名称删除书
def removeBookByName(name: String): Unit = {
BookList -= BookList.find(_.title == name).get
}
// 根据 ID 删除书
def removeBookById(id: Int): Unit = {
BookList -= BookList.find(_.id == id).get
}
}
原文地址:https://blog.csdn.net/2401_83599586/article/details/143673642
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!