定长数组,是指数组长度不可变。定义定长数组的方法有如下两种:
var/val variable_name = new Array[元素类型](数组长度) // 通过制定长度定义
例如,定义一个长度为20的Int 类型数组。
scala> val a = new Array[Int](20)
val a: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
val/var variable_name = Array(ele1, ele2, ele3, ...) // 使用元素直接定义
例如,定义一个数组元素为 1、2、3 的数组。
scala> val a = Array(1,2,3)
val a: Array[Int] = Array(1, 2, 3)
变长数组的元素个数是可以增减的,我们可以添加、删除、修改元素。我们可以使用类 scala.collection.mutable.ArrayBuffer
。
定义空变长数组的语法为:
val/var variable_name = ArrayBuffer[元素类型]()
例如,定义一个变长数组,初始元素为 1、2、3
scala> import scala.collection.mutable.ArrayBuffer
scala> val a = ArrayBuffer(1,2,3)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
使用操作符 +=
添加元素到变长数组,例如,向变长数组 a 中添加元素 4
scala> import scala.collection.mutable.ArrayBuffer
scala> val a = ArrayBuffer(1,2,3)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
scala> a+=4
val res0: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4)
使用操作符 ++=
可以添加一个数组到定长数组。
scala> import scala.collection.mutable.ArrayBuffer
scala> val a = ArrayBuffer(1,2,3,4)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4)
scala> a ++= Array(5,6)
val res1: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5, 6)
使用操作符 -=
可以删除变长数组的一个元素。
scala> import scala.collection.mutable.ArrayBuffer
scala> val a = ArrayBuffer(1,2,3,4,5,6)
val a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5, 6)
scala> a -= 4
val res2: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 5, 6)
与 Java 一样,在 Scala 中,可以通过索引或 for 表达式遍历数组。
scala> val a = Array(1,2,3)
val a: Array[Int] = Array(1, 2, 3)
scala> for(i <- a) println(i)
1
2
3
scala> val a = Array(1,2,3)
val a: Array[Int] = Array(1, 2, 3)
scala> for(idx <- 0 until a.length) println(a(idx))
1
2
3