📅  最后修改于: 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)