12Array

本文最后更新于 2021-08-05 11:42:59

Array

定长数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
object ArrayDemo1 {

def main(args: Array[String]): Unit = {
val arr1 = Array[Int](1, 3, 5, 7, 9)
println(arr1.mkString(","))

val arr2 = arr1 :+ 10
//相当于arr1.:+(10)
//将元素10加在arr1的后面,返回新数组arr2
//:在前面相当于是左结合,从左往右,即:+是arr1的方法
println(arr2.mkString(","))


val arr3 = 11 +: arr1
//相当于arr1.+:(11)
//将11加在arr1的前面,并返回新的数组arr3
//:在后面相当于是右结合,从右往左,即+:是arr1的方法
println(arr3.mkString(","))


val arr4 = arr1 ++ arr2
//相当于arr1.++(arr2)
//将arr2所有元素加载arr1后面,并且返回新数组arr4
println(arr4.mkString(","))
}
}
1
2
3
4
5
6
7
object ArrayDemo2 {
def main(args: Array[String]): Unit = {
//创建长度为10的数组,每个元素默认为0
// new
val arr =new Array[Int](10)
}
}

可变数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
object ArrayDemo3 {
def main(args: Array[String]): Unit = {
val buffer = ArrayBuffer(1, 2, 3)
val buffer2 = new ArrayBuffer[Int]()
//还是生成新对象
val buffer3 = buffer :+ 4
println(buffer3)

//在原对象上修改,不生成新对象
//带 = 的一半用于可变集合
buffer3 += 10
100 +=: buffer3
println(buffer3)

//合并两个array,产生新对象
val ints = buffer ++ buffer2

//合并两个Array, 不产生新对象,合并到buffer上
buffer ++= buffer2
//合并到buffer2上,但是是追加在buffer2的前面
buffer ++=: buffer2

//删除元素,删除满足的第一个
buffer -= 1

//移除buffer1中buffer2有的元素
buffer --=buffer2
}
}

多维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
object ArrayDemo4 {
def main(args: Array[String]): Unit = {
//多维数组
//生成一个2*3的数组
val array = Array.ofDim[Int](2,3)
//遍历
println(array(0)(1))
for(a <-array){
for(b<-a){
println(b)
}
}
}
}

12Array
https://jiajun.xyz/2020/11/16/scala/12Array/
作者
Lambda
发布于
2020年11月16日
更新于
2021年8月5日
许可协议