Array

34 阅读1分钟

可以输入以下代码:

package array

// Array: 可变, 不可变
// 不可变: scala.Array
// 可变: scala.collection.mutable.ArrayBuffer

object array01 {
  def main(args: Array[String]): Unit = {
    // 不可变数组
    val arr1 = scala.Array(1, 2, 3)
    // arr1 += 4 // 不可变的数组,不能添加元素

    // 可变数组
    val arr2 = scala.collection.mutable.ArrayBuffer(1, 2, 3)
    arr2 += 4 // 可变数组,可以添加元素

    println(arr2)
  }
}

运行结果如图所示: image.png 再次输入以下代码:

// Array: 可变, 不可变
// 不可变: scala.Array
// 可变: scala.collection.mutable.ArrayBuffer

object array02 {
  def main(args: Array[String]): Unit = {
    val arr2 = scala.collection.mutable.ArrayBuffer(1, 2, 3)

    // 1. 添加
    arr2 += (4, 5) // 可变数组,可以添加元素

    // 2. 删除
    arr2 -= 2

    // 3. 获取指定下标的元素
    // arr2(0) 下标为0,数组中的第一个元素
    println(arr2(0))

    // 4. 修改
    arr2(0) = 100

    // 5. 遍历
    arr2.foreach(ele => println(ele))

    // println(arr2)
  }
}

运行结果如图所示:

image.png 可以输入以下代码:

// Array: 可变, 不可变
// 不可变: scala.Array
// 可变: scala.collection.mutable.ArrayBuffer

object array03 {
  // 需要确保case class中prior是可变的(用var)
  case class DreamItem(content: String, var isDone: Boolean, deadline: String, var prior: Int)

  def main(args: Array[String]): Unit = {
    // 定义可变数组
    val dreamList = scala.collection.mutable.ArrayBuffer(
      DreamItem("实现财富自由", false, "2026-09-01", 1),
      DreamItem("环游世界", false, "2026-12-30", 2),
      DreamItem("掌握Scala编程", false, "2026-07-10", 3)
    )

    // 将第2个梦想标记为已完成
    dreamList(1).isDone = true

    // 调高第3个梦想的优先级(索引2是第3个元素)
    dreamList(2).prior = 1

    // 根据优先级排序
    val sortedList = dreamList.sortBy(_.prior)

    // 循环输出
    sortedList.foreach(ele => {
      println(s"${ele.content}, ${if (ele.isDone) "已实现" else "未实现"}, 截止日期: ${ele.deadline}, 优先级: ${ele.prior}")
    })
  }
}

电脑有点问问题,这个代码的运行结果出不来,所以请你自己点击运行,这代码是可以进行正常运行的。