一、导入
在编程过程中,我们经常需要存储和操作一组数据。比如,存储一个班级学生的成绩或者一个图像的像素值。
在 Scala 中,Array 是一种非常重要的数据结构,可以帮助我们有效地处理这类数据。今天我们就来学习 Scala 中的 Array。
package arr
//可变的
import scala.collection.mutable.ArrayBuffer
//可变和不可变
//Arrayy:有序,连续的。可以根据下标来访问元素!
object array01 {
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 arr
//可变的
import scala.collection.mutable.ArrayBuffer
//可变和不可变
//Arrayy:有序,连续的。可以根据下标来访问元素!
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("赚到100W",false,"2028-01-01",2),
DreamItem("1W个粉丝",false,"2026-12-01",3),
DreamItem("跑15km",false,"2026-06-06",2),
)
//4
list(1).isDone=true
//5
list(2).prior = 4
//6.sortBy 使用指定的字段排序
// reverse 翻转数组(正序,倒序)
val soetedList=list.sortBy(_.prior).reverse
//7.把排序之后的数组,截取前2个,放在一个新的列表中
val topList=soetedList.take(2)
//8
list.foreach(ele =>{
println(ele.content,if(ele.isDone)"已完成" else "未完成")
})
}
}