代码展示:
package caseclass
import scala.collection.mutable.ListBuffer
object caseclass3 {
// 1
case class Book(id:Int,name:String,author:String,price:Double, var amount:Int)
def main(args: Array[String]): Unit = {
// 2
val BookList:ListBuffer[Book] = ListBuffer()
// 3
val book1 = Book(1,"剑来","烽火戏诸侯",88,50)
val book2 = Book(2,"斗破苍穹","烽火戏诸侯",9.9,5)
val book3 = Book(3,"你的婚礼","烽火戏诸侯",100,10)
BookList += book1
BookList += book2
BookList += book3
// 4
val book4 = Book(4,"完美世界","梦雨",50,10)
val rst4 = BookList.find(ele => ele.id == book4.id)
if(rst4.isDefined){
rst4.get.amount = rst4.get.amount + book4.amount
}else{
BookList += book4
}
//5查询是否存在
var bookName = "你的婚礼"
val rst0 = BookList.find(ele => ele.name == bookName)
if(rst0.isDefined) {
println(s"<《${bookName}》存在")
}else {
println(s"《${bookName}》不存在")
}
// 6.删除书名是剑来的书
bookName = "剑来"
val rst1 = BookList.find(ele=>ele.name==bookName)
if(rst1.isDefined){
BookList -= rst1.get
println(s"删除书名是${bookName}的书成功")
}else{
println(s"没有找到书名是:${bookName}的书")
}
// 7.删除id为1的书
val id = 1
val rst2 = BookList.find(ele => ele.id==id)
if (rst2.isDefined){
BookList -= rst2.get
println(s"删除id=${id}的书成功")
}else{
println(s"没有找到id=${id}的书")
}
// 8.sortWith
val newList = BookList.sortWith((a,b) => {
a.price > b.price
})
// 9
newList.foreach(ele =>{
println(s"${ele.id} ${ele.name} ${ele.price}")
})
// 10
var totalPrice = 0.0
newList.foreach(ele =>{
totalPrice += ele.price * ele.amount
})
println(s"总价格:${totalPrice}")
}
}
结果展示:
代码说明:
1.在项目1当中最后一个amount前缀加一个var是因为在5,6项目中需要更改元素,但是一般默认是val是不能够更改元素的,所以加上var,这样就构成了可以修改元素的条件
2.这些项目运用了集合List的用法