📜  Scala序列

📅  最后修改于: 2021-05-20 05:20:22             🧑  作者: Mango

Sequence是Iterable类的可迭代集合。它用于表示具有元素定义顺序(即保证不可变)的索引序列。序列的元素可以使用其索引进行访问。方法适用于建立索引的目的。也可以使用reverse和reverseIterator方法可逆地访问序列。
索引的范围是0到(n – 1),其中,n =序列的长度。为了找到子序列,序列支持各种方法。诸如indexOf,segmentLength,prefixLength,lastIndexWhere,lastIndexOf,startsWith,endsWith之类的方法。序列有两个主要的子特性,即IndexedSeqLinearSeq ,它们提供了不同的性能保证。 IndexexedSeq提供元素的快速和随机访问,而LinearSeq仅通过头提供对第一个元素的快速访问,还包含快速尾部操作。
范例1:

// Scala program to illustrate sequence
import scala.collection.immutable._
  
object GFG
{
    // Main Method
    def main(args:Array[String])
    {
        // Initializing sequence
        var seq:Seq[Int] = Seq(1,2,3,4,5,6) 
          
        // Printing Sequence
        seq.foreach((element:Int) => print(element+","))
        println("\nElements Access Using Index") 
        println(seq(0)) 
        println(seq(1)) 
        println(seq(2)) 
        println(seq(3)) 
        println(seq(4)) 
        println(seq(5))
    } 
}
输出:
1,2,3,4,5,6,
Elements Access Using Index
1
2
3
4
5
6

序列中使用的一些预定义方法

  • def apply(index:Int):A->从序列中选择一个元素
  • def contains [A1>:A](elem:A1):布尔值->检查序列是否包含给定元素
  • def count(p:(A)=>布尔值):Int->计算满足谓词的元素数
  • def length:Int->给出序列的长度
  • def copyToArray(xs:Array [A],start:Int,len:Int):单位->用于将Sequence的元素复制到数组
  • def startsWith [B](那:GenSeq [B]):布尔值->检查序列是否以给定序列终止
  • def head:A->它选择序列的第一个元素。
  • def indexOf(elem:A):Int->查找序列中值首次出现的索引
  • def isEmpty:布尔值->测试序列是否为空。
  • def lastIndexOf(elem:A):Int->查找序列中最后一次出现的值的索引
  • def reverse:Seq [A]->返回具有相反顺序元素的新序列。

使用预定义方法的序列示例

范例2:

// Scala program to illustrate sequence
object MainObject
{
    // Main Method
    def main(args:Array[String])
    {
        // Initializing sequence
        var seq:Seq[Int] = Seq(1, 2, 3, 4, 5, 6)
          
        // Printing Sequence
        seq.foreach((element:Int) => print(element+",")) 
          
        // Using Some Predefined Methods
        println("\nis Empty: "+ seq.isEmpty) 
        println("\nEnds with (5,6): "+ seq.endsWith(Seq(5,6)))
        println("\nLength of sequence: "+ seq.length) 
        println("\ncontains 3: "+ seq.contains(3)) 
        println("\nlast index of 4 : "+ seq.lastIndexOf(4)) 
        println("\nReversed sequence: "+ seq.reverse)
    } 
}
输出:
1,2,3,4,5,6,
is Empty: false

Ends with (5,6): true

Length of sequence: 6

contains 3: true

last index of 4 : 3

Reversed sequence: List(6, 5, 4, 3, 2, 1)