

1 Scala数组
数组是最常用的收集一系列元素的结构
数组的声明与其他数值类型声明类似
定长数组声明
val A= new Array [T] (N) val A=new Array [Int] (10)
数组声明时若不给出值,会被初始化,初始化后同样能对数组成员进行赋值
数组成员初始化,如Int类型的会都被初始化为0,String类型的会被初始化为Null
val B=Array(N1 ,N2)
数组声明时若给出值,Scala可以进行类型推断,可以不用声明数组类型、长度
A(n)=Nn n(0,N-1) B(0)=N1
数组初始化后能赋值,或是对指定数组成员赋值
val G=B+Array(1,2) val G=B-Array(1,2)
2 变长数组声明与操作
import scala.collection.mutable.ArrayBuffer
声明一个空的数组缓存,此时C是一个全为空的数组,数组元素为0 val C= new ArrayBufferT
在数组尾部增加一个类型为T的元素e1
C += e1 C:ArrayBuffer(e1)
在数组尾部增加类型为T的元素e2, e3
C +=(e2, e3) C:ArrayBuffer(e1 , e2, e3)
在数组尾部增加数组Array(e2, e3)
C++=Array(e2, e3) C:ArrayBuffer(e1 , e2, e3, e2, e3)
移除最后1个元素
C.trimEnd(1) C:ArrayBuffer(e1 , e2, e3, e2)
在第二个元素后插入e3
C .insert(2, e3) C:ArrayBuffer(e1 , e2, e3,e3, e2)
在第二个元素后插入e1 , e2, e3
C .insert(2,e1 , e2, e3) C:ArrayBuffer(e1,e2,e1,e2, e3,e3,e3, e2)
移除第三个元素后的一个元素
C.remove(3) C:ArrayBuffer(e1,e2,e1,e3,e3,e3, e2)
移除第三个元素后的两个元素
C.remove(3,2) C:ArrayBuffer(e1,e2,e1,e3, e2)
把变长数组C转换为定长数组D
D=C.toArray
把定长数组A转换为变长数组E
E=A.toBuffer
3 数组遍历
直接遍历数组的成员
for(i <- C) println(i)
遍历数组C中的所有成员并输出
for(i <- 0 to (C.length-1))println(C(i))
每两个元素一条进行遍历
for(i <- 0 to (C.length,2) ) println(C(i))
倒序遍历
for(i <- (0 to C.length).reverse)println(C(i))
通过for语句枚举数组成员,可以实现多种数组控制,如把数组成员各加1并生成新数组:val NEW=for(i <- C) yield i+1
这种数组生成是对应原数组类型的(定长/变长)
4 数组实战
/** 数组
*/
//定长数组
val ar1 = new Array[Int](3)
ar1(0) = 1
ar1(1) = 2
ar1(2) = 3
//直接初始化
var ar2 = Array(3,4,5)
//ArrayBuffer
import scala.collection.mutable.ArrayBuffer
val buf = ArrayBuffer[Int]()
buf += (1,2)
buf ++= (for(i <- 3 to 6) yield i)
buf.toArray buf.insert(2,7)
buf.remove(3)
//遍历数组
for(i <- ar1 if i >1) println(i)
关注公众号:
领取精彩视频课程
海量免费语音课程





