(一) List的定义和介绍 List 是一种有序的数据结构,它是一种链表**结构。 [教师画图介绍链表]
[展示]List 创建格式
不可 变 List:
val 列表名称 = List(element1, element2,...)
可变 List : ListBuffer
import scala.collection.mutable.ListBuffer
val 列表名称 = ListBuffer[元素类型](element1, element2,...)
package list
object list01 {
def main(args: Array[String]): Unit = {
//不可变的列表
val list1=List("湖北","湖南","广东")
//list1 += "北京"错误,不可变列表,不能直接+=
println(list1)
//可变的列表
val list2=scala.collection.mutable.ListBuffer("湖北","湖南","广东")
//可变列表,可以 +=
list2 += "北京"
}
}
(二)可变List的 常用方法
1. 添加元素
2. 删除元素
package list
/*
*
* 可变list的常见操作
*1.添加(在头部添加,在尾部添加,在指定的位置添加)
*2.删除(删除元素,删除某个位置上的元素)
*3.判断元素
*4.
*
*
*/
object list02 {
def main(args: Array[String]): Unit = {
val list1=scala.collection.mutable.ListBuffer("湖北")
//1.添加,在尾部添加
list1 +="浙江"
println(list1)//ListBuffer(湖北,浙江)
//2.添加,在头部添加
list1.prepend("潜江")//潜江,湖北,浙江
//3.添加,在指定位置插入。
list1.insert(2,"广东")//潜江,湖北,广东,浙江
println(list1)
//4.删除,删除指定的元素,只删除找到的这一个。
list1-="潜江"
//5.删除某个下标上的元素
println(list1)
list1.remove(0)//删除列表中的第一个元素。下标为0的元素
println(list1)
//6.判断是否存在
if(list1.contains("潜江")){
println("潜江在列表中")
}
//7.合并
val list2=scala.collection.mutable.ListBuffer(1,2,3)
val list3=scala.collection.mutable.ListBuffer(4,5,6)
val list4=list2 ++ list3
val list5=list2.concat(list3)
println(list4)
println(list5)
//8.遍历 list1 for,foreach方法
list1.foreach(ele => {
println(ele)
})
for (ele <- list1){
println(ele)
}
}
}
步骤任务:
- 创建图书信息类,包含三个属性:书名,作者,价格
- 创建 6 本图书对象并添加到可变 List 的尾部
- 创建 1 本图书对象并添加到可变 List 的头部
- 创建 1 本图书对象并添加到可变 List 的第 3 个位置
- 根据图书名称查询是否在列表中(通过遍历列表对比名称)
- 从列表中删除第 4 本书
- 对于图书按价格从高到低排序。
- 遍历图书列表,并打印每本书的详细信息
- 展示全部的总的金额
package list
import java.awt.print.Book
/*
*1. 创建图书信息类,包含三个属性:书名,作者,价格
*2. 创建 6 本图书对象并添加到可变 List 的尾部
*3. 创建 1 本图书对象并添加到可变 List 的头部
*4. 创建 1 本图书对象并添加到可变 List 的第 3 个位置
*5. 根据图书名称查询是否在列表中(通过遍历列表对比名称)
*6. 从列表中删除第 4 本书
*7. 对于图书按价格从高到低排序。
*8. 遍历图书列表,并打印每本书的详细信息
*9. 展示全部的总的金额
*/
import scala.collection.mutable.ListBuffer
class Book(var bookName:String,var author:String,val price:Double) {}
object list03 {
def main(args: Array[String]): Unit = {
val bookList: ListBuffer[Book] = ListBuffer()
val book1=new Book("西游记","吴承恩",50.2)
bookList += book1
val book2=new Book("三国演义","罗贯中",54.2)
bookList +=book2
//3.
val book3=new Book("凡人修仙传","忘语",30)
bookList.prepend(book3)
//4.
bookList.insert(2,new Book("平凡的世界","路遥",50))
//7.
val newBookList=bookList.sortWith((a:Book,b:Book)=>{
a.price>b.price
})
//8.
bookList.foreach(book =>{
println(s"书名:${book.bookName},作者:${book.author},价格:${book.price}")
})
}
}