Scala数组完全指南:从基础操作到实战应用

48 阅读2分钟

一、导入

在编程过程中,我们经常需要存储和操作一组数据。比如,存储一个班级学生的成绩或者一个图像的像素值。在Scala中,Array是一种非常重要的数据结构,可以帮助我们有效地处理这类数据。今天我们就来深入学习Scala中的Array。

二、Array的定义与类型

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

  • Array:表示长度不可变的数组
  • ArrayBuffer:表示长度可变的数组

三、不可变数组的基本操作

案例:不可变数组的创建与特点

package array

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

代码结果

1.png

代码分析

  1. 不可变数组的创建:使用scala.Array(1,2,3)创建不可变数组
  2. 不可变特性:注释掉的arr1 += 4说明了不可变数组不能添加元素
  3. 可变数组的创建:需要从scala.collection.mutable包中导入ArrayBuffer
  4. 可变特性arr2 += 4展示了可变数组可以动态添加元素
  5. 类型区分:明确展示了两种数组类型在创建和操作上的区别

四、可变数组的完整操作

案例:可变数组的增删改查操作

package array

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

代码结果

2.png

代码分析

  1. 创建可变数组:使用ArrayBuffer构造函数初始化数组
  2. 批量添加元素arr2 += (4,5)展示了如何一次性添加多个元素
  3. 删除元素arr2 -= 2删除值为2的元素
  4. 元素访问arr2(0)通过索引访问数组第一个元素
  5. 元素修改arr2(0) = 100修改指定位置的元素值
  6. 数组遍历:使用foreach方法遍历数组所有元素
  7. 操作顺序:代码展示了增、删、查、改、遍历的完整操作流程