1 定義定長數組
var x=new Array[Int](8)
x(6)=6
println(x(6))
for(i<-x)print(i+" ")
2 變長數組
定義變長數組
import scala.collection.mutable.ArrayBuffer
var x=ArrayBuffer[Int]()
向尾部追加元素
x+=5
向尾部追加多個元素
x+=(1,2)
使用++=可以追加任何集合
x++=Array(4,6)
刪除後兩個元素
x.trimEnd(2)
變長數組的插入與刪除
插入insert(插入索引,元素集合)
x.insert(2,8,7,9)
刪除元素remove(刪除指定位置的索引[,指定刪除的長度])
x.remove(2,3)
變長數組與定長數組的相互轉化
var x=Array[Char](3)
將定長數組轉化成變長數組
var x2=x.toBuffer
x2+=('a','b','c')
將變長數組轉換成定長數組
var x3=x2.toArray
3 數組遍歷
.reverse將數組反向輸出
for(i<-(0 until x.length).reverse)
println(x(i))
until (x.length,2)指定輸出數組步長爲2
var x=Array(1,3,5,7)
for(i<-0 until (x.length,2))
println(x(i))
增強型的for
var x=Array(1,3,5,7)
for(i<-x)println(i)
4 數組轉化
通過yield推導出另一個數組
var x=Array(1,3,5,7)
var y=for(i<-x)yield i*2
過濾方法filter
val x=Array(1,2,3,4,5,6)
var y=x.filter(_ %2==0)
for(i<-y)println(i)
5 算法
val ra=scala.util.Random
var data=new Array[Int](5)
for(i<-0 until data.length)data(i)=ra.nextInt(30)
數組的sum統計加法
var s=data.sumprintf("sum:%d\n",s)
得到數組的最大值
var s2=data.maxprintf("max:%d\n",s2)
數組的快速排序
scala.util.Sorting.Sorting.quickSort(數組)
變長數組排序方法
val ra=Random
var da=ArrayBuffer[Int]()
for(i<-0 until 5)da+=ra.nextInt(20)
val y=da.sorted
for(i<-y.reverse)println(i)
mkString連接數組
val ra=Random
var da=new Array[Int](5)
for(i<-0 until da.length)da(i)=ra.nextInt(20)
val str=da.mkString(",")
val str2=da.mkString("[",",","]")
6 二維數組
var da=Array.ofDim[Double](2,3)
da(0)(0)=5.5
for(i<-0 until da.length){
for(j<-0 until da(i).length)
printf("da[%d][%d]=%.1f\t",i,j,da(i)(j))
printf("\n")
}
var x=new Array[Array[Int]](3)
爲一維數組賦值不同長度
x(0)=new Array[Int](2)x(1)=new Array[Int](6)
for(j<-x(1))println(j)