在 Scala 集合体系中,List 是最常用的线性数据结构之一,其核心特性是有序、可重复,并分为不可变 List 和 可变 ListBuffer 两大类别。 在 Scala 集合体系中,List 是最常用的线性数据结构之一,其核心特性是有序、可重复,并分为不可变 List 和 可变 ListBuffer 两大类别。
一、不可变 List 基础操作
不可变 List 的核心特点是 “无副作用”:任何添加、删除元素的操作都不会改变原列表,而是返回一个新的 List 对象。
初始化不可变 List
代码展示
object list01 {
def main(args: Array[String]): Unit = {
//1.不可变
val list1 = List("湖北省", "浙江省")
println(list1)
//2.可变
val list2 = scala.collection.mutable.ListBuffer("湖北省","浙江省")
// 在尾部添加
list2 += "北京市"
println(list2)
//在头部添加
list2.prepend("潜江")
//在指定位置添加
list2.insert(1, "湖南")
println(list2)
}
}
结果
二、可变 ListBuffer 核心操作
可变 ListBuffer 是不可变 List 的 “性能优化版”,支持直接修改原列表,无需频繁生成新对象,适合频繁添加 / 删除元素的场景。
初始化 ListBuffer
需先导入 mutable.ListBuffer,初始化方式与不可变 List 类似:
代码展示
object list01 {
def main(args: Array[String]): Unit = {
//1.不可变
val list1 = List("湖北省", "浙江省")
println(list1)
//2.可变
val list2 = scala.collection.mutable.ListBuffer("湖北省","浙江省")
// 在尾部添加
list2 += "北京市"
println(list2)
//在头部添加
list2.prepend("潜江")
//在指定位置添加
list2.insert(1, "湖南")
println(list2)
// 2.删除
list2 -= "湖北省"
//3.判断某个元素是否存在
if(list2.contains("潜江")){
println("潜江在列表中存在")
} else {
println("潜江在列表中不存在")
}
//4.合并列表,列表中允许重复的元素存在
val list3 = scala.collection.mutable.ListBuffer("湖北省","浙江省")
val list4 = scala.collection.mutable.ListBuffer("湖北省","浙江省")
val list5 = scala.collection.mutable.ListBuffer("湖北省","浙江省")
//5.遍历 for
for(ele <- list2) {
println(ele)
}
list2.foreach(ele => {
println(ele)
})
}
}