Scala中的List

29 阅读2分钟

一、List的定义和介绍

List 是一种有序的数据结构,它是一种链表结构。

List 创建格式

  1. 不可变List:

val 列表名称 = List(element1, element2,...)

  1. 可变 List:ListBuffer

import scala.collection.mutable.ListBuffer

val 列表名称 = ListBuffer[元素类型](element1, element2,...)

// 不可变的列表
val list1=List("湖北","湖南","广东","湖北")
// list1 += "北京" 错误,不可变列表,不能直接+=
println(list1)

// 可变列表
val list2=scala.collection.mutable.ListBuffer("湖北","湖南","广东")

// 可变列表,可以 +=
list2 += "北京"

二、不可变List的常用方法

(1)、添加元素

对于不可变 List,我们可以使用appended,或者prepended方法来添加元素。要注意的是:需要使用新的List来保存结果。

// 不可变的列表
val list1=scala.collection.mutable.ListBuffer("湖北")

// 1.添加,在尾部添加
list1 += "浙江"
println(list1)

// 2.添加,在头部添加
list1.prepend("潜江")

// 3.添加,在指定位置插入
list1.insert(2,"广东")

println(list1)

屏幕截图 2025-12-01 103900.png

三、可变List的常用方法

(1)、添加元素

对于可变 List,我们可以使用+=操作符或者append方法来添加元素。

添加元素到可变 List 的格式 (+= 操作符): listBuffer += element
添加元素到可变 List 的格式 (append 方法): listBuffer.append(element)

(2)、删除元素

删除的方法有两种:删除元素,删除某个位置上的元素。

(3)、元素是否存在

我们可以使用contains方法来查询 List 中是否包含某个元素。

查询 List 元素的格式(contains 方法):

val isContained: Boolean = listName.contains(element)

(4)、合并列表

我们可以使用 ++ 方法来合并。

//可变list的常见操作
//
//1.添加(在头部添加,在尾部添加,在指定的位置添加)
//2.删除(删除元素,删除某个位置上的元素)

object list02 {
  def main(args: Array[String]): Unit = {
    // 不可变的列表
    val list1=scala.collection.mutable.ListBuffer("湖北")

    // 1.添加,在尾部添加
    list1 += "浙江"
    println(list1)

    // 2.添加,在头部添加
    list1.prepend("潜江")

    // 3.添加,在指定位置插入
    list1.insert(2,"广东")


    // 4.删除,删除指定的元素,只删除找到的这一个
    list1 -= "潜江"

    // 5.删除某个下标上的元素
    println(list1)
    list1.remove(0) // 删除列表中的第一个元素。下标为0的元素
    println(list1)

    // 6.判断是否存在
    if(list1.contains("潜江")){
      println("潜江在列表中")
    }else{
      println("潜江不在列表中")
    }

    // 7.合并
    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)

    // 8.遍历 list1 for,foreach方法
    list1.foreach(ele => {
      println(ele)
    })
    for (ele <- list1){
      println(ele)
    }
  }