scala中的Array

4 阅读1分钟

Array 是一种在 Scala 中用于存储固定大小、相同类型元素的数据结构。它在内存中是连续存储的,这使得访问元素的速度非常快。

1. 创建不可变数组

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)
  }
}
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)
}

梦想清单管理。

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

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

3. 添加3个梦想

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

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

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

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

8. 循环输出梦想列表

case class DreamItem(content:String, var isDone:Boolean, deadline:String, prior: Int)

def main(args: Array[String]): Unit = {
  val dreamList = scala.collection.mutable.ArrayBuffer(
    DreamItem("学习Scala编程", false, "2026-09-01", 1),
    DreamItem("阅读5本技术书", false, "2026-12-30", 2),
    DreamItem("参加技术峰会", false, "2026-07-10", 3),
  )

  dreamList(2).isDone = true

  dreamList.foreach(ele => {
    println(ele.content, if(ele.isDone) "已实现" else "未实现")
  })
}