🌺Scala——数组
等长数组——存储固定大小的同类型元素,索引从0开始
一维数组
(1)使用Array声明数组格式
var/val 数组名:Array[元素类型]= new Array[元素类型]()
var/val 数组名= new Array[元素类型]()
例:
copycopyvar/val a:Array:[String]= new Array[String](3)
var/val a= new Array[String](3)
(2)var/val定义数组区别
copycopyvar s= new Array[Int](3)
val t= new Array[Int](3)
###区别:s可以指向其他数组实例空间,t不可以指向其他实例空间——var可以重新赋值,val不可以重新赋值###
s= new Array[Int](5)
t= new Array[Int](5) ——报错,t的值不能变,但是t指向的数组元素的值可以改变
(2)定义数组时直接初始化
copycopyvar/val 数组名=Array(依次数组元素值,用逗号分隔)
例
copycopyvar s= Array("Scala","Java","Hadoop")
var a= Array(3,4,5)
(3)引用数组元素——数组名(下标;下标可以是整数的表达式)
copycopyvar a= new Array[Int](3)
a(0)=5
a(1)=6
a(2)=9
var i= 0
for(x<- a){
println("a("+i+")="+x)
i=i+1
}
输出:
a(0)=5
a(1)=6
a(2)=9
(4)一维数组合并——concat
copycopyArray.concat()
(5)元素个数
copycopyvar b= Array("hello","world")
println(b.length)
输出:
2
多维数组
定义格式
var/val 数组名= Array.ofDim[数组元素类型] (x1,x2) //二维数组
var/val 数组名= Array.ofDim[数组元素类型] (x1,x2,x3) //三维数组
例
copycopyvar myArray= Array.ofDim[Int](3,3)
变长数组——scala.collection.mutable.ArrayBuffer
(1)定义格式
a.定义空列表
var/val 变量名:ArrayBuffer[类型]=new ArrayBuffer[类型]()
var/val 变量名 = ArrayBuffer[类型]=()
b.直接初始化
var/val 变量名 = ArrayBuffer[类型]=ArrayBuffer(初始元素列表)
var/val 变量名 = ArrayBuffer(初始元素列表)
(2)常用操作
a.添加元素:+=
copycopyvar a = new ArrayBuffer[Int]()
a+=3
b.添加集合元素:++=
copycopyvar a= new ArrayBuffer[Int]()
a+=3
var b=ArrayBuffer(9,8,7)
a++=Array(4,5,6)
a++=b
println(a)
println(b)
输出:
ArrayBuffer(3, 4, 5, 6, 9, 8, 7)
ArrayBuffer(9, 8, 7)
c.移除元素:-=,.remove(下标)
copycopyvar a=ArrayBuffer(1,2,3,4,5,6,7,8,9)
a-=6
println(a)
a.remove(3)
println(a)
输出:
ArrayBuffer(1, 2, 3, 4, 5, 7, 8, 9)
ArrayBuffer(1, 2, 3, 5, 7, 8, 9)
d.trimEnd(n)——从后面删除n个元素/trimStart(n)——从前面删除n个元素
copycopyvar a=ArrayBuffer(1,2,3,4,5,6,7,8,9)
a.trimEnd(2)
println(a)
a.trimStart(2)
println(a)
输出:
ArrayBuffer(1, 2, 3, 4, 5, 6, 7)
ArrayBuffer(3, 4, 5, 6, 7)
e.添加元素
insert(下标,添加的元素)——从指定下标位置开始,添加元素
copycopyvar a=ArrayBuffer(1,2,3)
a.insert(1,9,8,7,6)
println(a)
输出:
ArrayBuffer(1, 9, 8, 7, 6, 2, 3)
insertAll(下标,集合变量)——从指定下标位置开始,添加所有集合元素
copycopyvar a= ArrayBuffer(1,2,3)
var b= ArrayBuffer(7,8,9)
a.insertAll(1,b)
println(a)
输出:
ArrayBuffer(1, 7, 8, 9, 2, 3)