Scala列表用法完全指南(示例代码)

2021年3月29日17:44:21 发表评论 967 次浏览

列表是包含不可变数据的集合。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)

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: