Scala数组介绍和用法

本文概述

数组是可变值的集合。它是一个基于索引的数据结构, 从0索引开始到n-1, 其中n是数组的长度。

Scala数组可以是通用的。这意味着, 你可以拥有一个Array [T], 其中T是类型参数或抽象类型。 Scala数组与Scala序列兼容-你可以在需要Seq [T]的地方传递Array [T]。它还支持所有序列操作。

下图表示数组的结构, 其中第一个索引为0, 最后一个索引为9, 数组长度为10。

Scala数组

Scala数组类型

  1. 一维数组
  2. 多维数组

Scala一维数组

一维数组用于按线性顺序存储元素。数组元素存储在连续的存储空间中。因此, 如果你具有数组的任何索引, 则可以轻松地遍历数组的所有元素。

一维数组的语法

var arrayName : Array[arrayType] = new Array[arrayType](arraySize);   or
var arrayName = new Array[arrayType](arraySize)  or
var arrayName : Array[arrayType] = new Array(arraySize);   or
var arrayName = Array(element1, element2 ... elementN)

Scala数组示例:一维

class ArrayExample{
    var arr = Array(1, 2, 3, 4, 5)     	// Creating single dimensional array
    def show(){
        for(a<-arr)               		 // Traversing array elements
            println(a)
        println("Third Element  = "+ arr(2))        // Accessing elements by using index
    }
}

object MainObject{
    def main(args:Array[String]){
        var a = new ArrayExample()
        a.show()
    }
}

输出

1
2
3
4
5
Third Element  = 3

Scala示例2:一维

在此示例中, 我们使用new关键字创建了一个数组, 该关键字用于初始化数组的内存。整个数组元素均设置为默认值, 你可以稍后在代码中分配该值。

class ArrayExample{
    var arr = new Array[Int](5)     	// Creating single dimensional array
    def show(){
        for(a<-arr){               		 // Traversing array elements
            println(a)
        }
        println("Third Element before assignment = "+ arr(2))        // Accessing elements by using index
        arr(2) = 10                                                			 // Assigning new element at 2 index
        println("Third Element after assignment = "+ arr(2))
    }
}

object MainObject{
    def main(args:Array[String]){
        var a = new ArrayExample()
        a.show()
    }
}

输出

0
0
0
0
0
Third Element before assignment = 0
Third Element after assignment = 10

Scala将数组传递给函数

你可以在函数调用期间将数组作为参数传递给函数。以下示例说明了如何将数组传递给函数的过程。

class ArrayExample{
    def show(arr:Array[Int]){
        for(a<-arr)                // Traversing array elements
            println(a)
        println("Third Element = "+ arr(2))        // Accessing elements by using index
    }
}

object MainObject{
    def main(args:Array[String]){
        var arr = Array(1, 2, 3, 4, 5, 6)    // creating single dimensional array
        var a = new ArrayExample()
        a.show(arr)                     // passing array as an argument in the function
    }
}

输出

1
2
3
4
5
6
Third Element = 3

Scala数组示例:使用Foreach循环进行迭代

你也可以使用foreach循环来迭代数组元素。让我们来看一个例子。

class ArrayExample{
    var arr = Array(1, 2, 3, 4, 5)     	// Creating single dimensional array
    arr.foreach((element:Int)=>println(element))       // Iterating by using foreach loop
}

object MainObject{
    def main(args:Array[String]){
        new ArrayExample()
    }
}

输出

1
2
3
4
5
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?