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)