Scala学习第十二弹 数组

来源:互联网 发布:2k18詹姆斯身体数据 编辑:程序博客网 时间:2024/06/07 04:45

定长数组
如果你需要一个长度不变的数组,可以用Scala中的Array,例如:
val sum = new Array [Int] (10)//10个整数的数组,所有元素初始化为0
val s = new Array [String] (10)//10个元素的字符串数组,所有元素初始化为null
val a = Array (“hello”,”scala”)//长度为2的String数组——类型是自己推断出来的,已经有初始值的就不需要new了
a(0)=”hello”//使用( )而不是[ ]来访问元素
变长数组:数组缓冲
对于那些长度需要变化的数组,java里有ArrayList,c++中有vector,Scala中的等效数据结构ArrayBuffer。
val a = ArrayBuffer[Int]()//或者new ArrayBuffer[Int],一个空的自负缓冲,准备存放整数数组
a += 1//ArrayBuffer(1),用+=在数组末端添加元素
a +=(1,2,3,4)//ArrayBuffer(1,1,2,3,4)添加多个元素用括号括起来
a ++=Array(5,6,7)//ArrayBuffer(1,1,2,3,4,5,6,7)用++=操作符追加任何集合
a.trimEnd(5)//ArrayBuffer(1,1,2)移除最后5个元素
在数组缓冲的尾端添加或移除元素是很高效的操作
你可以在任意位置插入或移除元素,但这并不高效,因为之后的每个元素都要进行移动
插入
a.insert(2,6)//ArrayBuffer(1,1,6,2),在下标2之前插入6
a.insert(2,7,8,9)//ArrayBuffer(1,1,7,8,9,6,2)可以插入任意多的元素
移除
a.remove(2)//ArrayBuffer(1,1,8,9,6,2)移除下标2的元素
a.remove(2,3)//ArrayBuffer(1,1,2)//移除从下标2开始的3个元素,第二个参数的含义是要移除多少个元素
有时你需要构建一个Array,但不知最后会装多少元素,就可以利用ArrayBuffer,然后调用a.toArray//Array(1,1,2)
相反你也可以用toBuffer方法将数组转化为数组缓冲

0 0
原创粉丝点击