(一)、List的定义和介绍
List 是一种有序的数据结构,它是一种链表结构。
List 创建格式
不可变List:
val 列表名称 = List(element1, element2,...)
可变List:ListBuffer
import scala.collection.mutable.ListBuffer;
val 列表名称 = ListBuffer[元素类型](element1, element2,...);
object list01 {
def main(args: Array[String]): Unit = {
//不可变的列表
val list1 = List("湖北","湖南","广东")
// list1 += "北京" 错误,不可变列表,不能直接+=
println(list1)
//可变的列表
val list2 = scala.collection.mutable.ListBuffer("湖北","湖南","广东")
//可变列表,可以 +=
list2 += "北京"
}
}
(二)、可变List的常用方法
1.添加元素
对于可变 List,我们可以使用+=操作符或者append方法来添加元素。
添加元素到可变 List 的格式 (+= 操作符): listBuffer += element
添加元素到可变 List 的格式 (append 方法): listBuffer.append(element)
object list02 {
def main(args: Array[String]): Unit = {
val list1 = scala.collection.mutable.ListBuffer("湖北")
//1.1添加,在尾部添加
list1 +="南昌"
println(list1)//ListBuffer(湖北, 南昌)
//1.2添加,在头部添加
list1.prepend("潜江")//潜江,湖北,南昌
//1.3添加,在指定位置插入
list1.insert(1,"九江")//潜江, 九江, 湖北, 南昌
println(list1)
}
}
2.删除元素
删除的方法有两种:删除元素,删除某个位置上的元素。
//2.1删除,删除指定的元素,只删除找到的这一个
list1 -= "潜江"
println(list1)
//2.2删除某个下标上的元素
list1.remove(0)
println(list1)
3.元素是否存在
//3.判断是否存在
if(list1.contains("潜江")){
println("潜江在列表中")
}else{
println("潜江不在列表中")
}
4.合并列表
//4.合并
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)
5.List的遍历
//5.遍历 list1 for,foreach方法
list1.foreach(ele =>{
println(ele)
})
for (ele <- list1){
println(ele)
}
(三)、实训内容
步骤任务:
1.创建图书信息类,包含三个属性:书名,作者,价格
2.创建6本图书对象并添加到可变 List的尾部
3.创建1本图书对象并添加到可变 List的头部
4.创建1本图书对象并添加到可变 List的第3个位置
5.根据图书名称查询是否在列表中(通过遍历列表对比名称)
6.从列表中删除第4本书
7.对于图书按价格从高到低排序。
8.遍历图书列表,并打印每本书的详细信息
9.展示全部的总的金额
/**
* 步骤任务:
* 1.创建图书信息类,包含三个属性:书名,作者,价格
* 2.创建6本图书对象并添加到可变 List的尾部
* 3.创建1本图书对象并添加到可变 List的头部
* 4.创建1本图书对象并添加到可变 List的第3个位置
* 5.根据图书名称查询是否在列表中(通过遍历列表对比名称)
* 6.从列表中删除第4本书
* 7.对于图书按价格从高到低排序。
* 8.遍历图书列表,并打印每本书的详细信息
* 9.展示全部的总的金额
*/
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()
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.
newBookList.foreach(book =>{
println(s"书名:${book.bookName},作者:${book.author} 价格:${book.price}")
})
}
}