scala中的List

29 阅读1分钟

一. List的定义和介绍

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

List 创建格式:

不可变List:

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

可变List:ListBuffer

import scala.collection.mutable.ListBuffer

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

// 可变
val list1 = scala.collection.mutable.ListBuffer(1,2,3)
list1 += 4
println(list1)

// 不可变(List直接放数据的语法)
val list2 = scala.collection.immutable.List(1,2,3)

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

二. 可变List的常用方法

1. 添加元素

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

val list1 = scala.collection.mutable.ListBuffer(1,2,3)
// 1.1 在尾部添加
list1 += 4
// 1.2 在头部添加
list1.prepend(-1)
// 1.3 在指定位置添加(-1,1,2,5,3,4)
list1.insert(3, 5)
// 3: 是下标,从0开始的。
// 5: 就是要插入的元素。

println(list1)

2. 删除元素

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

// 2.1 删除元素
list1 -= 1

// 2.2 删除指定位置的元素
list1.remove(3) // 删除下标为3的元素

println(list1)

3. 元素是否存在

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

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

val isContained: Boolean = listName.contains(element)

val ele = 50
if(list1.contains(ele)){
  println(s"${ele} 存在")
} else {
  println(s"${ele} 不存在")
}

4. 合并列表

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

val list2 = scala.collection.mutable.ListBuffer("潜江","仙桃")
val list3 = scala.collection.mutable.ListBuffer("天门")
val list4 = list2 ++ list3

println(list4)

5. List的遍历

我们可以使用for循环或者foreach方法来遍历 List。

使用 for 循环遍历 List 的格式:

for (element <- listName) {

  // 操作,如打印 element

}

使用 foreach 方法遍历 List 的格式:

listName.foreach { element =>

  // 操作,如打印 element

}

for(ele <- list4){
  println(s"${ele}")
}

list4.foreach(ele => {
  println(s"${ele}")
})
// foreach 高阶函数