scala的Array练习题

36 阅读1分钟

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

1. 使用case class 定义DreamItem类。它的属性有:内容,是否完成,截止日期,优先级。

2. 定义可变Array来保存DreamItem。

3. 添加3个梦想

4. 将第2个梦想设置为已完成。

5. 调高第3个梦想的优先级

6. 根据优先级进行从高到低排序

7. 把优先级排名前2的梦想保存到一个新的列表中

8. 循环输出梦想列表

package array

import scala.collection.mutable.ArrayBuffer

object array02 {

  // 1. 使用case class 定义DreamItem类。它的属性有:内容,是否完成,截止日期,优先级。
  case class DreamItem(content:String , var isDone:Boolean , deadline:String , prior:Int)

  def main(args: Array[String]): Unit = {

    // 2.定义可变Array来保存DreamItem  3.添加3个梦想
    val list = ArrayBuffer(
      DreamItem("自己买房",false,"2035-11-11",3),
      DreamItem("找到自己喜欢的工作",false,"2026-12-01",1),
      DreamItem("存3w块钱",false,"2026-12-12",2),
    )

    // 4.将第2个梦想设置为已完成。
    list(1).isDone = true

    // 5.调高第3个梦想的优先级
    list(2).prior = 1
    
    // 6.根据优先级进行从高到低排序
    val sortedList = list.sortBy(_.prior).reverse  //sortBy使用指定的字段排序  reverse翻转数组(正序,倒序)

    // 7.把优先级排名前2的梦想保存到一个新的列表中
    val topList = sortedList.take(2)

    // 8.循环输出梦想列表
    list.foreach(ele => {
      println(ele.content,if(ele.isDone) "已完成" else "未完成")
    })
  }
}

image.png