(一)Array的定义
Array 是一种在 Scala 中用于存储固定大小、相同类型元素的数据结构。它在内存中是连续存储的,这使得访问元素的速度非常快。
类型有两种:Array表示长度不可变的数组 和 ArrayBuffer表示长度可变的数组
(二)可变数组,不可变数组
Array表示长度不可变的数组,一旦定义之后,不能再增加,删除元素。
package array
object array01 {
def main(args: Array[String]): Unit = {
// 可变数组
val arr1 = scala.collection.mutable.ArrayBuffer(1,2,3);
// 可以直接添加元素
arr1 += 4
println(arr1)
// 不可变数组
val arr2 = Array(1,2,3)
// 不可变,不能直接添加元素
// arr2 += 4 // 报错
println(arr2)
}
}
(三)数组常用方法
package array
object array02 {
def main(args: Array[String]): Unit = {
// 可变数组
val arr1 = scala.collection.mutable.ArrayBuffer(1,2,3)
// 添加
arr1 += 4
arr1 += (5,6,7)
// 删除
arr1 -= 4
// 删除某个下标的元素
// arr1.remove(0)
// 从指定位置开始删除,删除几个
arr1.remove(0, 3)
// 修改
arr1(2) = 700
// 判断元素是否存在
println(arr1.contains(6)) // true
println(arr1.contains(8)) // false
println(arr1.sum) // 求和
arr1.foreach(ele=>println(ele))
}
}
package array
object array03 {
def main(args: Array[String]): Unit = {
// 可变数组
val arr1 = scala.collection.mutable.ArrayBuffer(1,2,0,-1,20,3)
// 排序
val arr2 = arr1.sortWith((a,b)=>a>b)
// 切片:只取整个数组中的某个部分 slice
val arr3 = arr1.slice(0, 3)
// 过滤
val arr4 = arr1.filter(x => x>0)
// 索引位置:检查某个元素的下标
val target = -2
val result = arr1.indexOf(target) // 如果没找到这个元素,就返回-1
println(s"${target}的下标是 ${result}")
arr4.foreach(ele => println(ele))
}
}