Scala Lists

Scala Lists

列表是包含不可变数据的集合。在Scala中,列表表示链表。Scala List类保存一个序列化的、线性的列表。
以下是Scala中列表和数组之间的区别:

  • 列表是不可变的,而数组在Scala中是可变的。
  • 列表表示链表,而数组是平的。

语法:

val variable_name: List[type] = List(item1, item2, item3)
或
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 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中可以对列表执行的三个基本操作:

  1. head: head方法返回的列表的第一个元素。
    语法:
list.head //返回列表的头部

例子:

// Scala程序的一个列表来执行头操作
import scala.collection.immutable._
 
// 创建对象
object GFG
{
  //主要方法
  def main(args:Array [String])
  {
    // 创建一个列表。
    val mylist = List("C", "C#", "Java", "Scala",
                        "PHP", "Ruby")
    println("列表的头部是:")
    println(mylist.head)
  }
}    

输出:

列表的头部是:
C
  1. tail: 此方法返回一个由除第一个元素之外的所有元素组成的列表。
    语法:
list.tail //返回由除第一个元素之外的所有元素组成的列表

例子:

// Scala程序来执行列表的尾操作
import scala.collection.immutable._
 
// 创建对象
object GFG
{
  //主要方法
  def main(args:Array [String])
  {
    // 创建一个列表。
    val mylist = List("C", "C#", "Java", "Scala",
                        "PHP", "Ruby")
    println("列表的尾部是:")
    println(mylist.tail)
  }
}

输出:

List(C,C#,Java,Scala,PHP,Ruby)
  1. isEmpty: 若列表为空则返回true,否则返回false。
    语法:
list.isEmpty //如果列表为空则返回true,否则返回false。

例子:

// Scala程序来执行列表的isEmpty操作
import scala.collection.immutable._
 
// 创建对象
object GFG
{
  //主要方法
  def main(args:Array [String])
  {
    
    // 创建一个列表。
    val mylist = List("C", "C#", "Java", "Scala",
                         "PHP", "Ruby")
    println("列表是否为空:")
    println(mylist.isEmpty)
  }
}    

输出:

列表是否为空:
false

如何在Scala中创建统一的列表

在Scala中,可以使用List.fill()方法创建统一列表。 List.fill()方法创建列表并以元素的零个或多个副本填充列表。
语法:

List.fill() //用于在Scala中创建统一列表

例子:

// Scala程序来创建统一列表
import scala.collection.immutable._
 
// 创建对象
object GFG
{
  //主要方法
  def main(args:Array [String])
  {
    // 重复Scala三次。
    val programminglanguage = List.fill(3)("Scala")
    println("编程语言:"+ programminglanguage )
 
    // 重复4,10次。
    val number= List.fill(8)(4)
    println("数字:"+ number)
  }
}    

编程语言:List(Scala,Scala,Scala) 数字:List(4,4,4,4,4,4,4,4)

在Scala中颠倒列表顺序

在Scala中,可以使用List.reverse方法来颠倒列表顺序。 List.reverse方法可用于反转列表的所有元素。
语法:

list.reverse //用于在Scala中颠倒列表

例子:

// Scala程序的列表倒序
import scala.collection.immutable._
  
// 创建对象
object GFG
{
    // 主方法
    def main(args:Array[String])
    {
        val mylist = List(1, 2, 3, 4, 5) 
        println("原始列表:" + mylist)
          
        // 倒序列表
        println("倒序列表:" + mylist.reverse)
    }
}
原始列表:List(1, 2, 3, 4, 5)
倒序列表:List(5, 4, 3, 2, 1)

阅读更多:Scala 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程