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、数组其余方法详解
序号 | 方法 | 详解 |
---|---|---|
1 | def apply( x: T, xs: T* ): Array[T] | 创建指定对象 T 的数组, T 的值可以是 Unit, Double, Float, Long, Int, Char, Short, Byte, Boolean。 |
2 | def concat[T]( xss: Array[T]* ): Array[T] | 合并数组 |
3 | def copy( src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int ): Unit | 复制一个数组到另一个数组上。相等于 Java’s System.arraycopy(src, srcPos, dest, destPos, length)。 |
4 | def empty[T]: Array[T] | 返回长度为 0 的数组 |
5 | def 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) |
6 | def fill [T] ( n: Int )(elem: => T): Array[T] | 返回数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。 |
7 | def fill[T] ( n1: Int, n2: Int )( elem: => T ): Array[Array[T]] | 返回二数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。 |
8 | def ofDim[T] ( n1: Int ): Array[T] | 创建指定长度的数组 |
9 | def ofDim[T] ( n1: Int, n2: Int ): Array[Array[T]] | 创建二维数组 |
10 | def ofDim[T] ( n1: Int, n2: Int, n3: Int ): Array[Array[Array[T]]] | 创建三维数组 |
11 | def range( start: Int, end: Int, step: Int ): Array[Int] | 创建指定区间内的数组,step 为每个元素间的步长 |
12 | def range( start: Int, end: Int ): Array[Int] | 创建指定区间内的数组 |
13 | def tabulate[T] ( n: Int )(f: (Int)=> T): Array[T] | 返回指定长度数组,每个数组元素为指定函数的返回值,默认从 0 开始。以下实例返回 3 个元素:Array.tabulate(3)(a => a + 5) res0: Array[Int] = Array(5, 6, 7) |
14 | def tabulate [T] ( n1: Int, n2: Int )( f: (Int, Int ) => T): Array[Array[T]] | 返回指定长度的二维数组,每个数组元素为指定函数的返回值,默认从 0 开始。 |
版权声明:本文为qq_44973159原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。