主要内容摘自博文,点击阅读原文
Array定义定长数组,ArrayBuffer定义变长数组
上代码,一看就懂:
import scala.collection.mutable.ArrayBuffer
object ArrayAndArrayBuffer {
def main(args: Array[String]): Unit = {
// 定义Array方式一:
val ary1 = new Array[Int](5) //长度为5的整数数组,所有元素初始化为0
val ary2 = new Array[String](5) //长度为5的字符串数组,所有元素初始化为null
// 定义Array方式二:
val ary3 = Array("Hello","Spark") //长度为2的数组,数据类型自动推断出来,已经提供初始值就不需要new关键字
val ary4 = Array(1 to 10 : _*)
println("数组的元素:" + ary1(0))
ary1(0)=11 //赋值
println("改变后数组的元素:" + ary1(0))
ary4.foreach(println)
println("----------------------------------------------------------")
// 定义变长数组ArrayBuffer:
var numArrayBuffer = new ArrayBuffer[Int]()
// 使用 += 操作符,可以添加一个元素,或者多个元素
numArrayBuffer += 1
numArrayBuffer += (2, 3, 4, 5)
// 使用 ++= 操作符,可以添加其他集合中的所有元素
numArrayBuffer ++= Array(6, 7, 8, 9, 10)
println(numArrayBuffer) // 输出:ArrayBuffer(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
// 使用insert()函数可以在指定位置插入元素
// 但是这种操作效率很低,因为需要移动指定位置后的所有元素
numArrayBuffer.insert(5, 12) // 在第5个位置插入12
println(numArrayBuffer) // 输出:ArrayBuffer(1, 2, 3, 4, 5, 12, 6, 7, 8, 9, 10)
numArrayBuffer.insert(3, 22, 23, 24, 25)
println(numArrayBuffer) // 输出:ArrayBuffer(1, 2, 3, 22, 23, 24, 25, 4, 5, 12, 6, 7, 8, 9, 10)
// 使用remove()函数可以移除指定位置的元素
numArrayBuffer.remove(1)
println(numArrayBuffer) // 输出:ArrayBuffer(1, 3, 22, 23, 24, 25, 4, 5, 12, 6, 7, 8, 9, 10)
numArrayBuffer.remove(1, 3)
println(numArrayBuffer) // 输出:ArrayBuffer(1, 24, 25, 4, 5, 12, 6, 7, 8, 9, 10)
// Array与ArrayBuffer可以互相进行转换
numArrayBuffer.toArray
numArrayBuffer.toBuffer
// 使用trimEnd()函数,可以从尾部截断指定个数的元素
numArrayBuffer.trimEnd(5)
println(numArrayBuffer) // 输出:ArrayBuffer(1, 24, 25, 4, 5, 12)
}
}