斯卡拉列表
列表是包含不可变数据的集合。 List 表示 Scala 中的链表。 Scala List类包含一个有序的线性项目列表。
以下是Scala中列表和数组之间的区别点:
- 列表是不可变的,而数组在 Scala 中是可变的。
- Lists 表示链表,而数组是平面的。
句法:
val variable_name: List[type] = List(item1, item2, item3)
or
val variable_name = List(item1, item2, item3)
关于 Scala 中列表的一些要点:
- 在 Scala 列表中,每个元素必须属于同一类型。
- 列表的实现在构造期间内部使用可变状态。
- 在 Scala 中,列表定义在 scala.collection.immutable 包下。
- List 有多种方法来添加、前置、max、min 等,以增强列表的使用。
例子:
// Scala program to print immutable lists
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating and initializing immutable lists
val mylist1: List[String] = List("Geeks", "GFG",
"GeeksforGeeks", "Geek123")
val mylist2 = List("C", "C#", "Java", "Scala",
"PHP", "Ruby")
// Display the value of mylist1
println("List 1:")
println(mylist1)
// Display the value of mylist2 using for loop
println("\nList 2:")
for(mylist<-mylist2)
{
println(mylist)
}
}
}
输出:
List 1:
List(Geeks, GFG, GeeksforGeeks, Geek123)
List 2:
C
C#
Java
Scala
PHP
Ruby
在上面的例子中,我们只是打印了两个列表。
例子:
// Scala program to illustrate the
// use of empty list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating an Empty List.
val emptylist: List[Nothing] = List()
println("The empty list is:")
println(emptylist)
}
}
输出:
The empty list is:
List()
上面的示例显示列表是否为空。
例子:
// Scala program to illustrate the
// use of two dimensional list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating a two-dimensional List.
val twodlist: List[List[Int]] =
List(
List(1, 0, 0),
List(0, 1, 0),
List(0, 0, 1)
)
println("The two dimensional list is:")
println(twodlist)
}
}
输出:
The two dimensional list is:
List(List(1, 0, 0), List(0, 1, 0), List(0, 0, 1))
列表的基本操作
以下是可以在 scala 中对 list 执行的三个基本操作:
- head: head 方法返回的列表的第一个元素。
句法:list.head //returns head of the list
例子:
// Scala program of a list to // perform head operation import scala.collection.immutable._ // Creating object object GFG { // Main method def main(args:Array[String]) { // Creating a List. val mylist = List("C", "C#", "Java", "Scala", "PHP", "Ruby") println("The head of the list is:") println(mylist.head) } }
输出:The head of the list is: C
- tail:此方法返回一个列表,该列表由除第一个元素之外的所有元素组成。
句法:list.tail //returns a list consisting of all elements except the first
例子:
// Scala program to perform // tail operation of a list import scala.collection.immutable._ // Creating object object GFG { // Main method def main(args:Array[String]) { // Creating a List. val mylist = List("C", "C#", "Java", "Scala", "PHP", "Ruby") println("The tail of the list is:") println(mylist.tail) } }
输出:The tail of the list is: List(C#, Java, Scala, PHP, Ruby)
- isEmpty:如果列表为空,则此方法返回 true,否则返回 false。
句法:list.isEmpty //returns true if the list is empty otherwise false.
例子:
// Scala program to perform // isEmpty operation of a list import scala.collection.immutable._ // Creating object object GFG { // Main method def main(args:Array[String]) { // Creating a List. val mylist = List("C", "C#", "Java", "Scala", "PHP", "Ruby") println("List is empty or not:") println(mylist.isEmpty) } }
输出:List is empty or not: false
如何在 Scala 中创建统一列表
可以使用 List.fill() 方法在 Scala 中创建统一列表。 List.fill() 方法创建一个列表并用元素的零个或多个副本填充它。
句法:
List.fill() //used to create uniform list in Scala
例子:
// Scala program to creating a uniform list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Repeats Scala three times.
val programminglanguage = List.fill(3)("Scala")
println( "Programming Language : " + programminglanguage )
// Repeats 2, 10 times.
val number= List.fill(8)(4)
println("number : " + number)
}
}
输出:
Programming Language : List(Scala, Scala, Scala)
number : List(4, 4, 4, 4, 4, 4, 4, 4)
在Scala中反转列表顺序
可以使用 List.reverse 方法在 Scala 中反转列表顺序。 List.reverse 方法可用于反转列表中的所有元素。
句法:
list.reverse //used to reverse list in Scala
例子:
// Scala program of reversing a list order
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
val mylist = List(1, 2, 3, 4, 5)
println("Original list:" + mylist)
// reversing a list
println("Reverse list:" + mylist.reverse)
}
}
输出:
Original list:List(1, 2, 3, 4, 5)
Reverse list:List(5, 4, 3, 2, 1)