Array的定义
Array 是一种在 Scala 中用于存储固定大小、相同类型元素的数据结构。它在内存中是连续存储的,这使得访问元素的速度非常快。
类型有两种:Array表示长度不可变的数组 和 ArrayBuffer表示长度可变的数组
不可变数组和可变数组
Array表示长度不可变的数组,一旦定义之后,不能再增加,删除元素。
基本代码:
package array
import scala.collection.mutable.ArrayBuffer
// 可变的
object array01 {
// 可变和不可变
// Array: 有序,连续的。可以根据下标来访问元素!
def main(args: Array[String]): Unit = {
// 不可变的
val arr=Array(1,2,3,4,5)
// arr +=6
// 可变的
val arr1=ArrayBuffer(1,2,3,4,5)
arr1 +=6
// 可以根据下标来访问
println(arr1(4))
}
}
实训:梦想清单管理。
1. 使用case class 定义DreamItem类。它的属性有:内容,是否完成,截止日期,优先级。
2. 定义可变Array来保存DreamItem。
3. 添加3个梦想
4. 将第2个梦想设置为已完成。
5. 调高第3个梦想的优先级
6. 根据优先级进行从高到低排序
7. 把优先级排名前5的梦想保存到一个新的列表中
8. 循环输出梦想列表
基本代码:
package array
import scala.collection.mutable.ArrayBuffer
// 可变的
object array02 {
// 1
case class DreamItem(content:String,var isDOne:Boolean,deadline:String,var prior:Int)
def main(args: Array[String]): Unit = {
// 2,3
val list=ArrayBuffer(
DreamItem("去旅游",false,"2025-12-25",2),
DreamItem("提前放假",false,"2027-12-25",2),
DreamItem("不用上班",false,"2030-12-25",3),
)
// 4
list(1).isDOne=true
// 5
list(2).prior=4
//6.sortBy 使用指定的字段排序
// reverse 翻转数组(正序,倒序)
val sortedList=list.sortBy(_.prior).reverse
// 7. 把排序之后的数组,截取前两个,放在一个新的列表中
val topList=sortedList.take(2)
// 8
list.foreach(ele=>{
println(ele.content,if(ele.isDOne)"已完成" else "未完成")
})
}
}
运行结果: