1. 定長數(shù)組
//10個長度的數(shù)組,所有元素初始化為0
val nums = new Array[Int](10)
//10個元素的字符串數(shù)組,所有元素初始化為null
val a = new Array[String](10)
//長度為2的Array(String)--類型是推斷出來的,已提供初始值就不需要new
val s = Array("Hello","World")
//用()訪問元素而不是[]
s(0) = "Goodbye"
2. 變長數(shù)組:數(shù)組緩沖
import scala.collection.mutable.ArrayBuffer
//一個空的數(shù)組緩沖幌氮,準備存放整數(shù)毯炮。
val b = ArrayBuffer[Int]()
//+=在尾端添加元素
b += 1
//在尾端添加多個元素,用括號包起來征懈。
b += (1,2,3,4,5)
//用++=操作符追加任何集合
b ++= Array(5,6,7)
//移除最后5個元素
b.trimEnd(5)
//在小標2之前插入
b.insert(2,6)
//可以插入多個元素
b.insert(2,7,8,9)
//移除下標為2的元素
b.remove(2)
//第二個參數(shù)是移除多少個元素
b.remove(2,3)
3. 遍歷數(shù)組和數(shù)組緩沖
- 利用下標來進行遍歷
for (i <- 0 until a.length)
println(i + ": " + a(i))
- 不需要數(shù)組下標遍歷
for (elem <- a)
println(elem)
總結(jié)一下:
其實兩種遍歷方式是一樣的,只是第一種先生成了一個tuple然后轉(zhuǎn)換成第二種形式。
4. 數(shù)組轉(zhuǎn)換
利用for推到丈积,不會改變原來的數(shù)組,只是產(chǎn)生了一個新的集合动猬。
val a = Array(2,3,5,7,11)
val result = for (elem <- a) yield 2 * elem
//守衛(wèi),篩選條件的添加
for ( elem <- a if elem % 2 == 0) yield 2 * elem
// 上述問題完全可以用map,和filter代替
val result = a.map(_ * 2)
val result2 = a.filter(_ % 2 == 0)
完美,看著真舒坦啊表箭。