添加、删除、元素判断、列表合并、遍历

19 阅读4分钟
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 在指定位置添加。insert在指定的下标的位置添加元素
    list2.insert(1,"湖南")
    // 2 删除
    list2 -= "湖北省"
    // 3. 判断某个元素是否存在
    if(list2.contains("潜江")){
      println("潜江在列表中存在")
    } else {
      println("潜江在列表中不存在")
    }
    // 4. 合并列表:列表中允许重复的元素存在.ListBuffer("湖北省", "浙江省")
    val list3 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
    val list4 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
    val list5 = list3 ++ list4
    // 5. 遍历 for
    for(ele <- list2) {
      println(ele)
    }
    list2.foreach(ele => {
      println(ele)
    })
  }
}

Scala 代码围绕可变列表 ListBuffer 的核心操作展开,涵盖了添加、删除、元素判断、列表合并、遍历 五大核心功能

一、代码整体结构

scala

object list02 {  // 单例对象(Scala入口载体)
  def main(args: Array[String]): Unit = {  // 程序入口方法
    // 核心操作代码...
  }
}

Scala 程序的入口是 object 中的 main 方法,args 是命令行参数(此处未使用)。

二、核心操作逐行解释

1. 初始化可变列表

scala

val list2 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
  • scala.collection.mutable.ListBuffer:Scala 提供的可变列表(不可变 List 是默认的,可变需显式指定包路径);
  • 初始化时直接传入两个元素:"湖北省""浙江省",此时 list2 = [湖北省, 浙江省]

2. 添加元素(3 种方式)

scala

// 2.1 尾部添加:+= 是 ListBuffer 的重载运算符,向尾部追加元素
list2 += "北京市"  // list2 变为 [湖北省, 浙江省, 北京市]

// 2.2 头部添加:prepend 方法向列表最前面插入元素
list2.prepend("潜江")  // list2 变为 [潜江, 湖北省, 浙江省, 北京市]

// 2.3 指定位置添加:insert(下标, 元素),下标从 0 开始
list2.insert(1,"湖南")  // 在第1个位置插入"湖南",list2 变为 [潜江, 湖南, 湖北省, 浙江省, 北京市]

3. 删除元素

scala

list2 -= "湖北省"  // -= 是删除运算符,移除列表中第一个匹配的"湖北省"
// 执行后 list2 变为 [潜江, 湖南, 浙江省, 北京市]

注意:如果列表中有多个 "湖北省",-= 只会删除第一个;若要删除所有匹配元素,需用 remove 或遍历删除。

4. 判断元素是否存在

scala

if(list2.contains("潜江")){  // contains 方法判断元素是否在列表中,返回布尔值
  println("潜江在列表中存在")
} else {
  println("潜江在列表中不存在")
}
  • 此时 list2 仍包含 "潜江",因此会输出:潜江在列表中存在

5. 合并列表

scala

// 初始化两个新的可变列表
val list3 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
val list4 = scala.collection.mutable.ListBuffer("湖北省", "浙江省")
// ++ 运算符:合并两个列表,生成新列表(原列表 list3、list4 不变)
val list5 = list3 ++ list4  
// list5 结果:[湖北省, 浙江省, 湖北省, 浙江省](ListBuffer 允许重复元素)

区别:若用 ++=,则是将 list4 合并到 list3 中(修改 list3),而非生成新列表。

6. 遍历列表(2 种常用方式)

scala

// 6.1 普通 for 循环遍历
for(ele <- list2) {  // ele 是循环变量,依次取 list2 中的每个元素
  println(ele)
}

// 6.2 函数式遍历(foreach)
list2.foreach(ele => {  // foreach 接收一个函数,对每个元素执行逻辑
  println(ele)
})

两种遍历方式效果完全一致,此时 list2 = [潜江, 湖南, 浙江省, 北京市],遍历输出:

plaintext

潜江
湖南
浙江省
北京市

三、代码执行完整结果

运行这段代码,控制台输出顺序:

  1. 元素存在判断:潜江在列表中存在

  2. for 循环遍历输出:

    plaintext

    潜江
    湖南
    浙江省
    北京市
    
  3. foreach 遍历输出(和上面一致):

    plaintext

    潜江
    湖南
    浙江省
    北京市
    

四、关键知识点总结

操作类型方法 / 运算符说明
尾部添加+=原地修改列表,尾部追加元素
头部添加prepend原地修改列表,头部插入元素
指定位置添加insert(下标, 元素)原地修改,下标从 0 开始
删除元素-=移除第一个匹配的元素
元素判断contains返回布尔值,判断元素是否存在
列表合并++生成新列表,原列表不变
遍历for/foreachforeach 是更简洁的函数式写法