(一)List的定义和介绍
List 是一种有序的数据结构,它是一种链表结构。
List 创建格式:
不可变List:
val 列表名称 = List(element1, element2,...)
可变 List:ListBuffer
import scala.collection.mutable.ListBuffer
val 列表名称 = ListBuffer[元素类型](element1, element2,...)
def main(args: Array[String]): Unit = {
// 不可变列表
val list1 = List("湖北","湖南","广东")
// list1 += "北京" 错误,不可变列表,不能直接+=
println(list1)
// 可变的列表
val list2 = scala.collection.mutable.ListBuffer("湖北","湖南","广东")
// 可变列表,可以 +=
list2 += "北京"
println(list2)
}
}
(二)可变List的常用方法
1. 添加元素
对于可变 List,我们可以使用+=操作符或者append方法来添加元素。
添加元素到可变 List 的格式 (+= 操作符):
listBuffer += element
添加元素到可变 List 的格式 (append 方法):
listBuffer.append(element)
val list1 = scala.collection.mutable.ListBuffer("湖北")
// 1.添加,在尾部添加
list1 += "南京"
println(list1) // ListBuffer(湖北,南京)
// 2.添加,在头部添加
list1.prepend("青岛") // 青岛,湖北,南京
// 3.添加,在指定位置插入
list1.insert(2,"湖南") //青岛,湖北,湖南,南京
println(list1)
2. 删除元素
删除的方法有两种:删除元素,删除某个位置上的元素。
// 4. 删除,删除指定元素,只删除找到的这一个
list1 -= "青岛"
// 5.删除某个下标上的元素
println(list1)
list1.remove(0) // 删除列表中的第一个元素。下标为0的元素
println(list1)
3. 元素是否存在
我们可以使用contains方法来查询 List 中是否包含某个元素。
查询 List 元素的格式(contains 方法):
val isContained: Boolean = listName.contains(element)
if(list1.contains("潜江")){
println("青岛在列表中")
}else{
println("青岛不在列表中")
}
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的遍历
我们可以使用for循环或者foreach方法来遍历 List。
使用 for 循环遍历 List 的格式:
for (element <- listName) {
// 操作,如打印 element
}
使用 foreach 方法遍历 List 的格式:
listName.foreach { element =>
// 操作,如打印 element
}
list1.foreach(ele => {
println(ele)
})
for(ele <- list1){
println(ele)
}
结果如下
ListBuffer(湖北, 南京)
ListBuffer(青岛, 湖北, 湖南, 南京)
ListBuffer(湖北, 湖南, 南京)
ListBuffer(湖南, 南京)
青岛不在列表中
ListBuffer(1, 2, 3, 4, 5, 6)
ListBuffer(1, 2, 3, 4, 5, 6)
湖南
南京
湖南
南京