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 {
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,"2026-01-01",3),
DreamItem("过年",false,"2026-02-13",2),
DreamItem("减肥",false,"2026-03-01",2),
)
//4
list(1).isDone = true
//5
list(2).prior = 4
//6. sortBy 使用指定的字段序列
// reverse 翻转数组(正序,倒序)
val sortList = list.sortBy(_.prior) //从小到大,后加.reverse
// 7 把排序之后的数组,截取前两个,放在一个新的列表中
val topList = sortList.take(2)
//8
sortList.foreach(ele =>{
println(ele.content,if(ele.isDone) "已完成" else "未完成",ele.prior)
})
}
}
结果如下:
(过年,已完成,2)
(元旦放假,未完成,3)
(减肥,未完成,4)