📜  斯卡拉列表(1)

📅  最后修改于: 2023-12-03 15:40:05.570000             🧑  作者: Mango

斯卡拉列表

斯卡拉是一种函数式编程语言,其列表(List)是最常用的数据结构之一。它是一个简单的线性数据结构,可以存储任何类型的元素,包括其他列表。

创建一个列表

可以通过以下方式创建一个空列表:

val emptyList: List[Int] = List()

也可以使用以下方式创建一个包含元素的列表:

val numbers = List(1, 2, 3, 4, 5)
val fruits = List("apple", "orange", "banana")
访问列表元素

可以通过索引访问列表中的元素。Scala 列表的索引从 0 开始。

val numbers = List(1, 2, 3, 4, 5)
val first = numbers(0) // 1
val second = numbers(1) // 2

也可以使用 head 和 tail 方法来访问列表的第一个和剩余部分。

val numbers = List(1, 2, 3, 4, 5)
val first = numbers.head // 1
val rest = numbers.tail // List(2, 3, 4, 5)
更新列表

Scala 列表是不可变的,因此不能修改列表中的元素。但是,可以使用与原始列表相同的名称创建一个新列表来包含更新后的数据。

val numbers = List(1, 2, 3, 4, 5)
val updatedNumbers = numbers.updated(2, 10) // List(1, 2, 10, 4, 5)
迭代列表

Scala 列表的元素可以使用 for 循环和 foreach 方法进行迭代。

val numbers = List(1, 2, 3, 4, 5)
for (number <- numbers) {
  println(number)
}

numbers.foreach(number => println(number))
筛选列表

可以使用 filter 和 partition 方法筛选列表。

val numbers = List(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter(number => number % 2 == 0) // List(2, 4)
val (even, odd) = numbers.partition(number => number % 2 == 0) // (List(2, 4), List(1, 3, 5))
列表操作

可以使用 ::: 运算符来连接两个列表。

val numbers = List(1, 2, 3)
val letters = List("a", "b", "c")
val combined = numbers ::: letters // List(1, 2, 3, "a", "b", "c")
列表推导式

Scala 列表具有支持推导式的简洁语法。以下示例使用 for 循环和 if 条件生成由偶数组成的新列表。

val numbers = List(1, 2, 3, 4, 5)
val evenNumbers = for (number <- numbers if number % 2 == 0) yield number // List(2, 4)