Scala中的List

33 阅读2分钟

List的定义和介绍

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

image.png

List 创建格式

不可变List:

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

可变List:ListBuffer

import scala.collection.mutable.ListBuffer

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

package list

object list01 {
  def main(args: Array[String]): Unit = {
    // 不可变的列表
    val list1 = List("湖北","湖南","广东","湖北")
    println(list1)

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

不可变 List 创建后元素不能修改,而可变 List 可以修改。

可变List的常用方法

1. 添加元素

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

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

/*
*
* 可变list的常见操作
*
*   1.添加(在头部添加,在尾部添加,在指定位置插入)
*
* */
object list02 {
  def main(args: Array[String]): Unit = {

    val list1 = scala.collection.mutable.ListBuffer("湖北")

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

    println(list1) // ListBuffer(湖北, 浙江)

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

    // 3. 添加,在指定位置插入。
    list1.insert(2, "广东") // 潜江, 湖北, 广东, 浙江
    
    println(list1)
  }
}

2. 删除元素

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

// 4. 删除,删除指定的元素,只删除找到的这一个
list1 -= "潜江"
// 5. 删除某个下标上的元素
println(list1)
list1.remove(0) // 删除列表中的第一个元素。下标为0的元素
println(list1)

3. 元素是否存在

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

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

val isContained: Boolean = listName.contains(element)

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

4. 合并列表

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

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

5. List的遍历

两种遍历方法:

  1. 使用 for 循环遍历 List 的格式
  2. 使用 foreach 方法遍历 List 的格式
// 8. 遍历 list1 for, foreach方法
list1.foreach(ele =>{
  println(ele)
})
for(ele <- list1){
  println(ele)
}