Scala 入门基础(数组)

定长数组

1
2
3
4
5
6
7
8
val A = new Array[T](N)
val A = newe Array[Int](10)
1.数组声明时若不给出值,会被初始化(Int0StringNull
Val B = Array(N1,N2)
2.如果初始化,类型推断,可以不用声明数组类型、长度
A(n) = Nn (数组赋值)
val G = B + Array(1,2)
val G = B - Array(1,2)

变长数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import scala.collection.mutable.ArrayBuffer
var C = new ArrayBuffer[T]() //空数组缓存,数组元素长度为0
C += e1 //C:ArrayBuffer(e1) //在数组尾部增加一个类型为T的元素e1
C += (e2,e3)//C:ArrayBuffer(e1,e2,e3)
C ++= Array(e2,e3)//C:ArrayBuffer(e1,e2,e3,e2,e3)
C.trimEnd(1)//C:ArrayBuffer(e1,e2,e3,e2),移除最后一个元素
C.insert(2,e3) //C:ArrayBuffer(e1,e2,e3,e3,e2),第二个元素后后插入e3
C.insert(2,e1,e2,e3) //C:ArrayBuffer(e1,e2,e1,e2,e3,e3,e3,e2),第二个元素后后插入e1,e2,e3
C.remove(3) //C:ArrayBuffer(e1,e2,e1,e3,e3,e3,e2),移除第三个元素后的一个元素
C.remove(3,2) //C:ArrayBuffer(e1,e2,e1,e3,e2),移除第三个元素后的两个元素
D = C.toArray //把变长数组C转为定长数组D
E = A.toBuffer //把定长数组A转为变长数组E

遍历数组

1
2
3
4
5
6
7
8
9
for(i <- C)print(i)
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 这种数组生成是对应原数组类型的(定长/变长)