列表是包含不可变数据的集合。List表示Scala中的链表。Scala List类保存一个有序的、线性的项列表。
以下是Scala中列表和数组之间的区别点:
- 列表是不可变的, 而数组在Scala中是可变的。
- 列表表示一个链表, 而数组是平面的。
语法如下:
val variable_name: List[type] = List(item1, item2, item3)
or
val variable_name = List(item1, item2, item3)
有关Scala中的列表的一些重要点:
- 在Scala列表中, 每个元素必须具有相同的类型。
- 列表的实现在构造期间在内部使用可变状态。
- 在Scala中, 列表在scala.collection.immutable包下定义。
- 列表具有各种添加, 添加, 最大, 最小等方法, 以增强列表的使用率。
例子:
// 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 mylist 1 : List[String] = List( "Geeks" , "GFG" , "lsbin" , "Geek123" )
val mylist 2 = List( "C" , "C#" , "Java" , "Scala" , "PHP" , "Ruby" )
// Display the value of mylist1
println( "List 1:" )
println(mylist 1 )
// Display the value of mylist2 using for loop
println( "\nList 2:" )
for (mylist < -mylist 2 )
{
println(mylist)
}
}
}
输出如下:
List 1:
List(Geeks, GFG, lsbin, 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中的列表上执行的三个基本操作:
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)