Scala的Array的练习

23 阅读1分钟

任务背景:梦想清单管理。

  1. 使用 case class 定义 DreamItem 类。它的属性有:内容,是否完成,截止日期,优先级。
  2. 定义可变 Array 来保存 DreamItem。
  3. 添加 3 个梦想
  4. 将第 2 个梦想设置为已完成。
  5. 调高第 3 个梦想的优先级
  6. 根据优先级进行从高到低排序
  7. 把优先级排名前 5 的梦想保存到一个新的列表中
  8. 循环输出梦想列表

代码

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("赚到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 sortedList = list.sortBy(_.prior).reverse

    // 7. 把排序之后的数组,截取前2个,放在一个新的列表中
    val topList = sortedList.take(2)

    // 8
    list.foreach(ele => {
      println(ele.content, if(ele.isDone) "已完成" else "未完成",ele.prior)
    })
  }
}

输出结果

image.png