一、List的定义和介绍
List是一种有序的数据结构,它是一种链表结构。在Scala中,List主要分为两种类型:不可变List和可变ListBuffer。
创建格式
- 不可变List:
val 列表名称 = List(element1, element2, ...) - 可变ListBuffer:
import scala.collection.mutable.ListBuffer val 列表名称 = ListBuffer[元素类型](element1, element2, ...)
特点
- 不可变List创建后元素不能修改
- 可变ListBuffer可以修改元素
二、基本创建与区别示例
代码示例
package list
object list01 {
def main(args: Array[String]): Unit = {
// 1. 不可变List
val list1 = List("湖北省", "浙江省")
println(list1)
// 2. 可变List
val list2 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
list2 += "北京市"
println(list2)
}
}
结果展示
List(湖北省, 浙江省)
ListBuffer(湖北省, 浙江省, 北京市)
代码分析
- 创建了一个不可变List
list1,包含两个省份名称 - 创建了一个可变ListBuffer
list2,初始包含两个省份名称 - 使用
+=操作符向list2添加了新元素"北京市" - 不可变List创建后无法修改,而可变ListBuffer可以动态添加元素
三、可变List的常用操作
1. 添加元素
- 在尾部添加:
+=或append() - 在头部添加:
prepend() - 在指定位置添加:
insert(位置, 元素)
2. 删除元素
- 删除指定元素:
-= - 删除指定位置元素:
remove(位置)
3. 元素是否存在判断
使用 contains() 方法查询List中是否包含某个元素
4. 合并列表
使用 ++ 方法合并两个列表
5. List的遍历
- 使用for循环遍历
- 使用foreach方法遍历
代码示例
package list
object list02 {
def main(args: Array[String]): Unit = {
// 可变列表
val list2 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
// 1.1 在列表元素的尾部添加
list2 += "北京市"
// 1.2 在头部添加
list2.prepend("潜江")
// 1.3 在指定位置添加
list2.insert(1, "湖南")
println("添加元素后:" + list2)
// 2. 删除
list2 -= "湖北省"
println("删除'湖北省'后:" + list2)
// 3. 判断某个元素是否存在
if (list2.contains("潜江")) {
println("潜江在列表中存在")
} else {
println("潜江在列表中不存在")
}
// 4. 合并列表,列表中允许重复的元素存在
val list3 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
val list4 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
val list5 = list3 ++ list4
println("合并后的列表:" + list5)
// 5.1 使用for循环遍历
println("使用for循环遍历:")
for (ele <- list2) {
println(ele)
}
// 5.2 使用foreach方法遍历
println("使用foreach方法遍历:")
list2.foreach(ele => {
println(ele)
})
}
}
结果展示
添加元素后:ListBuffer(潜江, 湖南, 湖北省, 浙江省, 北京市)
删除'湖北省'后:ListBuffer(潜江, 湖南, 浙江省, 北京市)
潜江在列表中存在
合并后的列表:ListBuffer(湖北省, 浙江省, 湖北省, 浙江省)
使用for循环遍历:
潜江
湖南
浙江省
北京市
使用foreach方法遍历:
潜江
湖南
浙江省
北京市
代码分析
- 创建可变ListBuffer并演示了三种添加元素的方式
- 展示了如何删除指定元素
- 使用contains方法判断元素是否存在
- 使用++操作符合并两个列表,允许重复元素
- 演示了两种遍历方式:for循环和foreach方法
四、不可变List的常用方法
1. 添加元素
- 在尾部添加:
appended(元素) - 在头部添加:
prepended(元素)
2. 合并列表
- 使用
:::方法 - 使用
++方法
注意: 不可变List的所有修改操作都会返回一个新的List,原List保持不变。
五、总结
通过本篇文章的学习,我们掌握了Scala中List的以下知识点:
- List的基本概念:Scala中有两种List,不可变List和可变ListBuffer
- 创建方式:不可变List使用
List(),可变List使用ListBuffer() - 常用操作:
- 添加元素:尾部添加、头部添加、指定位置添加
- 删除元素:删除指定元素、删除指定位置元素
- 查询元素:判断元素是否存在
- 合并列表:使用
++操作符 - 遍历列表:for循环和foreach方法
- 不可变与可变的区别:不可变List修改操作返回新List,可变ListBuffer直接修改原List