Scala数组

时间:2020-01-09 10:47:10  来源:igfitidea点击:

在Scala中,数组是不可变的对象。我们创建一个像这样的数组:

var myArray : Array[String] = new Array[String](10);

首先,我们将变量" var myArray"声明为" Array [String]"类型。那是一个String数组。如果我们需要一系列例如Int,用Int替换String

其次,我们将创建一个新的字符串数组,其中包含10个元素(10个字符串)的空间。这是使用代码new Array [String](10)完成的。括号中传递的数字是数组的长度。换句话说,数组可以包含多少个元素。

创建后,我们将无法更改数组的长度。

访问数组元素

我们可以通过使用数组中的elements索引来访问数组的元素。元素索引从0到数组的长度减去1. 因此,如果数组有10个元素,则可以使用索引0到9访问这10个元素。

我们可以像这样访问数组中的元素:

var aString : String = myArray(0);

请注意,如何使用普通括号括住元素索引,而不是Java中使用的方括号[]。

要将值分配给数组元素,请编写以下代码:

myArray(0) = "some value";

迭代数组元素

我们可以通过两种方式迭代数组的元素。我们可以迭代元素索引,也可以迭代元素本身。

迭代索引

第一种方法是使用for循环,并从0遍历索引号直到数组的长度。方法如下:

for(i <- 0 until myArray.length){
    println("i is: " + i);
    println("i'th element is: " + myArray(i));
}

关键字until确保仅迭代直到myArray.length 1。由于数组元素索引从0到数组长度1,因此这是迭代数组的适当方法。

如果需要我在最后一次迭代中也取myArray.length的值,则可以使用to关键字而不是until关键字。有关for循环的更多详细信息,请参见文本Scala。

迭代元素

迭代数组的第二种方法是忽略索引,而仅迭代元素本身。方法如下:

for(myString <- myArray) {
    println(myString);
}

对于循环的每次迭代," myString"都会获取数组中下一个元素的值。请注意,myStringval类型,因此我们不能在for循环主体执行期间重新分配它。