1. 定长数组
如果需要一个长度不变的数组,可以使用scala中的Array。例如
val nums=new Array[Int](10)
val s=Array("Hello","world")
s(0)="GoodBye"
2. 变长数组:数组缓冲
对于长度需要变化的数组,Java有ArrayList,C++有vector。Scala中数据结构ArrayBuffer
在数组缓冲的尾端添加或者移除元素是一个高效的操作。但是在任意位置插入或者移除元素,并不高效,因为所有那个位置后面的元素都必须被平移
3. 遍历数组和数组缓冲
for循环遍历数组或者数组缓冲的语法:
for(i<-0 until a.length) println(i+":"+a(i))
until 是RichInt类的方法,返回所有小于(但不包括)上限的数字 , 0 until 10 实际上是: 0.until(10)
4.数组转换
scala中,对一个数组或者数组缓冲进行转换,不会修改原始数组,而是产生一个全新的数组
val a = Array(2,3,4,5)
val result = for( elem<-a) yield 2*elem
5.多维数组
例如:Double的二维数组类型为Array[Array[Double]]
val matrix=Array.ofDim[Double](3,4) //三行,四列
访问元素: matrix(row)(column)
创建不规则数组,每一行的长度各不相同:
val triangle=new Array[Array[Int]](10)
for(i<-0 until tr.length) tr(i)=new Array[Int](i+1)
6. 与java的互操作
由于scala数组是用java数组实现的,因此可以在java和scala之间来回传递