scala中的Array

50 阅读2分钟

内容如下:

1.Array的定义;

2.不可变和可变类型;

3.常见的方法;

4.多维数组、grouped方法。

(一)Array的定义

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

类型有两种:Array表示长度不可变的数组 和 ArrayBuffer表示长度可变的数组

(二)不可变和可变类型

Array表示长度不可变的数组,一旦定义之后,不能再增加,删除元素。

【代码如下】

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

(三)常见的方法

【代码如下】

package array

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

/**
 * 常见的方法
 * 1.添加
 * 2.删除
 * 3.获取指定下标的元素
 * 4.修改
 * 5.遍历
 */

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

数组常用方法:

案例:todos清单

[列出要介绍的全部方法:Map, Filter,indexOf, contains, slice ]

1. 映射(Map)。arr.map(f):对数组中的每个元素应用函数f,并返回一个新的不可变数组。

2. 过滤(Filter)。任务搜索

3. 搜索和比较

   - arr.indexOf(elem):返回元素elem在数组中的第一个索引。

   - arr.contains(elem):检查数组是否包含元素elem。

4. 切片(Slice)

    arr.slice(from, until):返回数组的一个子数组,从索引from开始直到索引until(不包括until)。

(五)多维数组、grouped方法

最典型的多维数组就是二维数组,类似于表格。有两种定义方式:

直接定义: Array.ofDim(x,y)

从一维数组转化得来: 数组. grouped()

var arr2 = arr1.grouped(5)  
var arr3 = arr2.toArray.map(_.toArray)