一、Array的定义
Array 是一种在 Scala 中用于存储固定大小、相同类型元素的数据结构。它在内存中是连续存储的,这使得访问元素的速度非常快。
类型有两种:Array表示长度不可变的数组 和 ArrayBuffer表示长度可变的数组。
二、不可变数组
Array表示长度不可变的数组,一旦定义之后,不能再增加,删除元素。
我们主要学习它的:创建数组,访问元素,填充Array.range
Array: 可变,不可变
-
不可变: scala.Array
-
可变: scala.collection.mutable.ArrayBuffer
val arr1 = scala.Array(1,2,3)
// arr1 += 4; 不可变的数组,不能添加
val arr2 = scala.collection.mutable.ArrayBuffer(1,2,3)
arr2 += 4 // 可变数组,可以添加元素
println(arr2)
三、可变数组
Array表示长度不可变的数组,一旦定义之后,不能再增加,删除元素。
// 1. 添加
arr2 += (4,5) // 可变数组,可以添加元素
// 2. 删除
arr2 -= 2
// 3.获取指定下标的元素
// arr2(0) 下标为0,数组中的第一个元素
println(arr2(0))
// 4. 修改
arr2(0) = 100
// 5. 遍历
arr2.foreach(ele => println(ele))
println(arr2)
四、案例(梦想)
case class DreamItem(content:String,var isDone:Boolean, deadline:String,var prior: Int)
def main(args: Array[String]): Unit = {
val dreamList = scala.collection.mutable.ArrayBuffer(
DreamItem("我要赚10086亿", false, "2035-09-01", 1),
DreamItem("(梦想2)", false, "2026-12-01", 2),
DreamItem("(梦想3)", false, "2027-7-01", 3),
)
// 4
dreamList(2).isDone = true
// 5
dreamList(0).prior = 1
// 6
val orderListed = dreamList.sortBy(_.prior)
// 7
val priorList = orderListed.take(2)
// 8
dreamList.foreach(ele => {
println(ele.content, if(ele.isDone)"已实现" else "未实现")
})
}