1. 数组定义
Array 长度固定
ArrayBuffer 长度可变
如果提供初始值时可不使用new,底层会直接调用apply方法
-
定常数组Array
val a1 = Array(元素1, 元素2, …) 不需要new,底层调用apply()帮我们new
var a2 = new Array[元素类型](数组长度) -
变长数组
使用前需要导包 import scala.collection.mutable.ArrayBuffer
val a3 = Array(元素1, 元素2, …)
var a4 = new Array[元素类型]
增加元素:
a1 += 元素
a1 += (元素1, 元素2, …)
a1.+=(元素)
a1.append(元素)
a1 ++= 数组
a1.insert(角标, 元素)
删除元素:
a1 -= 元素
a1.remove(元素角标) -
遍历数组
for循环
until循环 .reverse
map .filter(…).map(…) -
数组常用方法
arr.sum
arr.max
arr.min
arr.sorted
arr.sorted.reverse
arr.toMap 对偶Array转为Map
拉链操作
arr1.zip(arr2) 如果两个数组的元素个数不一致,拉链操作后生成的数组的长度为较小的那个数组的元素个数
arr1.zipAll(arr2, 默认值…) 如果其中一个元素的个数比较少,可以使用zipAll用默认的元素填充
2. 演示
- 定长数组
scala> val a1 = new Array[String](4)
a1: Array[String] = Array(null, null, null, null)
scala> a1(1) = "hello"
scala> a1
res5: Array[String] = Array(null, hello, null, null)
scala> val a2 = Array("hello","world")
a2: Array[String] = Array(hello, world)
scala> a2(0)
res6: String = hello
scala> a2(0)="hi"
scala> a2
res8: Array[String] = Array(hi, world)
变长数组
scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
scala> var a3 = new ArrayBuffer[Int]
a3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()
scala> var a4 = ArrayBuffer(1,2)
a4: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2)
scala> a4 += 3
res9: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
scala> a4.append(4)
scala> a4
res11: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4)
scala> a4 -= 2
res12: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 3, 4)
scala> a4.remove(1)
res13: Int = 3
scala> a4
res14: scala.collection