Scala List 全面解析:从不可变到可变的核心操作指南

77 阅读2分钟

在 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)

  }
}


结果

278.png

二、可变 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)
    })

  }
}
 

结果

Snipaste_2025-12-02_10-44-52.png