Scala 中的 Array 数组 详解


Scala 语言中提供的数组是用来存储固定大小的同类型元素,

1. 一维数组的声明与遍历

使用以下方式声明数组。

 val arr = Array[String]("hello","world")
 或者
 val arr1 = new Array[Int](5)

使用for循环进行遍历或者foreach方法

for (ele<-arr){
	println(ele)
}
或者
arr1.foreach(println)

测试如下图:

在这里插入图片描述

2. 二维数组的声明与遍历

创建二维数组

val arr2 = new Array[Array[Int]](3)

对二维数组进行赋值

    arr2(0) = Array[Int](4, 5, 6)
    arr2(1) = Array[Int](4, 5, 6)
    arr2(2) = Array[Int](4, 5, 6)

使用双重for循环进行遍历输出

    for (array <- arr2) {
      for (ele <- array) {
        println(ele)
      }
    }

测试如下图所示:
在这里插入图片描述

3. 可变长度数组 ArrayBuffer

使用ArrayBuffer之前要导入相对应的包:

import scala.collection.mutable.ArrayBuffer

创建数组并且对数组进行遍历

    val arr = ArrayBuffer[Int](elems = 1, 6, 8)
    arr.+=(4) //添加到末尾
    arr.+=:(100) //添加到头部
    arr.append(45, 56, 95)
    arr.foreach(println)

测试效果如下图所示
在这里插入图片描述

4、数组其余方法详解

序号方法详解
1def apply( x: T, xs: T* ): Array[T]创建指定对象 T 的数组, T 的值可以是 Unit, Double, Float, Long, Int, Char, Short, Byte, Boolean。
2def concat[T]( xss: Array[T]* ): Array[T]合并数组
3def copy( src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int ): Unit复制一个数组到另一个数组上。相等于 Java’s System.arraycopy(src, srcPos, dest, destPos, length)。
4def empty[T]: Array[T]返回长度为 0 的数组
5def iterate[T]( start: T, len: Int )( f: (T) => T ): Array[T]返回指定长度数组,每个数组元素为指定函数的返回值。以上实例数组初始值为 0,长度为 3,计算函数为a=>a+1:Array.iterate(0,3)(a=>a+1) res1: Array[Int] = Array(0, 1, 2)
6def fill [T] ( n: Int )(elem: => T): Array[T]返回数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。
7def fill[T] ( n1: Int, n2: Int )( elem: => T ): Array[Array[T]]返回二数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。
8def ofDim[T] ( n1: Int ): Array[T]创建指定长度的数组
9def ofDim[T] ( n1: Int, n2: Int ): Array[Array[T]]创建二维数组
10def ofDim[T] ( n1: Int, n2: Int, n3: Int ): Array[Array[Array[T]]]创建三维数组
11def range( start: Int, end: Int, step: Int ): Array[Int]创建指定区间内的数组,step 为每个元素间的步长
12def range( start: Int, end: Int ): Array[Int]创建指定区间内的数组
13def tabulate[T] ( n: Int )(f: (Int)=> T): Array[T]返回指定长度数组,每个数组元素为指定函数的返回值,默认从 0 开始。以下实例返回 3 个元素:Array.tabulate(3)(a => a + 5) res0: Array[Int] = Array(5, 6, 7)
14def tabulate [T] ( n1: Int, n2: Int )( f: (Int, Int ) => T): Array[Array[T]]返回指定长度的二维数组,每个数组元素为指定函数的返回值,默认从 0 开始。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Modify_QmQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值