主要內(nèi)容摘自博文夕膀,點(diǎn)擊閱讀原文
Array定義定長(zhǎng)數(shù)組,ArrayBuffer定義變長(zhǎng)數(shù)組
上代碼诊笤,一看就懂:
import scala.collection.mutable.ArrayBuffer
object ArrayAndArrayBuffer {
def main(args: Array[String]): Unit = {
// 定義Array方式一:
val ary1 = new Array[Int](5) //長(zhǎng)度為5的整數(shù)數(shù)組系谐,所有元素初始化為0
val ary2 = new Array[String](5) //長(zhǎng)度為5的字符串?dāng)?shù)組巾陕,所有元素初始化為null
// 定義Array方式二:
val ary3 = Array("Hello","Spark") //長(zhǎng)度為2的數(shù)組讨跟,數(shù)據(jù)類(lèi)型自動(dòng)推斷出來(lái),已經(jīng)提供初始值就不需要new關(guān)鍵字
val ary4 = Array(1 to 10 : _*)
println("數(shù)組的元素:" + ary1(0))
ary1(0)=11 //賦值
println("改變后數(shù)組的元素:" + ary1(0))
ary4.foreach(println)
println("----------------------------------------------------------")
// 定義變長(zhǎng)數(shù)組ArrayBuffer:
var numArrayBuffer = new ArrayBuffer[Int]()
// 使用 += 操作符鄙煤,可以添加一個(gè)元素晾匠,或者多個(gè)元素
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()函數(shù)可以在指定位置插入元素
// 但是這種操作效率很低梯刚,因?yàn)樾枰苿?dòng)指定位置后的所有元素
numArrayBuffer.insert(5, 12) // 在第5個(gè)位置插入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()函數(shù)可以移除指定位置的元素
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可以互相進(jìn)行轉(zhuǎn)換
numArrayBuffer.toArray
numArrayBuffer.toBuffer
// 使用trimEnd()函數(shù)凉馆,可以從尾部截?cái)嘀付▊€(gè)數(shù)的元素
numArrayBuffer.trimEnd(5)
println(numArrayBuffer) // 輸出:ArrayBuffer(1, 24, 25, 4, 5, 12)
}
}