📅  最后修改于: 2021-01-09 11:54:02             🧑  作者: Mango
数组是可变值的集合。它是一个基于索引的数据结构,从0索引开始到n-1,其中n是数组的长度。
Scala数组可以是通用的。这意味着,您可以拥有Array [T],其中T是类型参数或抽象类型。 Scala数组与Scala序列兼容-您可以在需要Seq [T]的地方传递Array [T]。它还支持所有序列操作。
下图表示数组的结构,其中第一个索引为0,最后一个索引为9,数组长度为10。
一维数组用于按线性顺序存储元素。数组元素存储在连续的内存空间中。因此,如果您有数组的任何索引,则可以轻松遍历数组的所有元素。
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)
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
在此示例中,我们使用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
您可以在函数调用期间将数组作为参数传递给函数。以下示例说明了如何将数组传递给函数。
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
您也可以使用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