Scala数组小结

1.定长数组

定长数组:指长度不可变的数组Array。

第一种方式:

先声明一个数组,后初始化该数组:

scala> val array = new Array[Double](5)
array: Array[Double] = Array(0.0, 0.0, 0.0, 0.0, 0.0)

赋值方式:array(index) = value

第二种方式:

scala> val array = Array(1, 2, 3, 4, 5)
array: Array[Int] = Array(1, 2, 3, 4, 5)

第三种方式,Array.fill(length)(value):

scala> val array = Array.fill(5)(3.5)
array: Array[Double] = Array(3.5, 3.5, 3.5, 3.5, 3.5)

如果fill第二个参数只写一个值的话,那么该数组的所有元素都是该值,但是如果第二个参数是一个iterator或者random,那么数组就会被赋值为它们的值。

scala> val array = Array.fill(2)(math.random)
array: Array[Double] = Array(0.2810736748034083, 0.7261142068882558)

第四种方式,ofDim[T](length):

scala> val array = Array.ofDim[Double](5)
array: Array[Double] = Array(0.0, 0.0, 0.0, 0.0, 0.0)

赋值方式:array(index) = value

2.变长数组

变长数组:指数组长度可以变化。

声明一个空的数组,此时数组没有任何元素,且不能以下标索引赋值:

val array = new ArrayBuffer[T]()

在数组尾部增加一个类型为T的元素e1:

array += e1

在数组尾部增加一个类型为T的元素e1、e2:

array += (e1, e2)

在数组尾部增加一个类型为T的数组:

array ++= Array(e1, e2)

在第index元素后插入e1:

array.insert(index, e1)

在第index元素后插入e1、e2:

array.insert(index, e1, e2)

移除第index元素后的n个元素:

array.remove(index, n)

3多维数组

3.1定长多维数组

第一种方式:

val array = new Array[Array[Int]](5)
scala> val array = new Array[Array[Int]](5)
array: Array[Array[Int]] = Array(null, null, null, null, null)

此时,内部的每个数组长度是不一样的,类似于Java中的如下定义:

int[][] array = new int[2][];

第二种方式(推荐):

用ofDim[T](rows, column, height,...)函数定义,但最多可以定义五维数组,不过已经够用了。

scala> val array = Array.ofDim[Int](2,3)
array: Array[Array[Int]] = Array(Array(0, 0, 0), Array(0, 0, 0))

3.2变长多维数组

scala> val arr1 = new ArrayBuffer[ArrayBuffer[Int]]()
arr1: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer()

4.定长数组和变长数组的转换

定长数组imarray转换成变长数组array:

array = imarray.toArray

变长数组array转换成定长数组imarray:

imarray = array.toBuffer

当定/变长多维数组相互转换时,只转换最外面那层数组:

scala> val array = Array(Array(1,2),Array(3,4))
arr: Array[Array[Int]] = Array(Array(1, 2), Array(3, 4))

scala> array.toBuffer
res14: scala.collection.mutable.Buffer[Array[Int]] = ArrayBuffer(Array(1, 2), Array(3, 4))

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-29 19:05:49

Scala数组小结的相关文章

scala数组

#scala数组 val A= new Array[T](N) val A = new Array[Int](10) ##变长数组 import scala.collection.mutable.ArrayBuffer val C = new ArrayBuffer[T]() C += e1 C += (e2,e3) C++ = Array(e2,e3) trimEnd(2)  #移除最后2个 C.insert(2,e3) C.remove(3,2) #转换 D=C.toArray    #变长

scala 数组转换

for(...)yield循环创建了一个类型与原始集合相同的新集合.  val a1 = Array(2, 3, 5, 7, 11)     val result = for (elem <- a1) yield 2 * elem     for (elem <- result) {       println(elem)     } 结果 4 6 10 14 22 通过守卫:for中的if 来实现处理那些满足特定条件的元素. val a1 = Array(2, 3, 5, 7, 11)   

Scala 数组-Array

环境: CentOS 6.3 1. 定义且同时初始化数组 $ cat array.scala val numNames2 = Array.apply("France","US","china") println(numNames2(0)) [[email protected] scala]$ scala array.scala France Array.apply("France","US","c

Javascript数组小结

Javascript数组小结 Javascript将指定的数字索引值转换成字符串--索引值1变成"1"--然后将其作为属性名来使用. 数组的length修改后,数组中大于设定值的元素将被删除 数组的添加删除: 1)  修改length属性值(删除) 2)  push.pop在数组的尾部进行插入.删除操作并返回操作元素:unshift和shift()在数组的首部进行插入.删除操作 3)  delete可以删除数组元素,但它不会改变数组的length属性,只是将该值置空. 4)  spli

Scala数组操作

数组要点 若长度固定则使用Array,若长度可能有变化则使用ArrayBuffer:提供初始值时不要使用new:用()来访问元素:用for(elem<-arr)来遍历元素:用for(elem<-arr if...)...yield...来将原数组转型为新数组:Scala数组和Java数组可以互操作,用ArrayBuffer,使用scala.collection.JavaConversions中的转换函数. 例子: import scala.collection.mutable.ArrayBuf

【scala】scala 数组 (三)

基础内容 1. 数组定义 定长.可变数组的定义;元素添加,删除,排序,求和等常用运算 import scala.collection.mutable.ArrayBuffer import scala.math.BigDecimal.RoundingMode /** * @author xwolf * @date 2017-04-09 18:23 * @since 1.8 */ object Collection { def main(arg:Array[String]): Unit ={ mul

Scala 数组和List

Scala 数组和List: import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.Buffer object ArrayLearning { def main (args: Array[String]): Unit = { // useZipUnzip // listOps // arrayOps // ArrayBufferOps } private def useZipUnzip = { //

4、scala数组

1.Array 2.ArrayBuffer 3.遍历Array和ArrayBuffer 4.数组常见操作 1.  Array Scala中,array代表的含义与java类似,也是长度不可改变的数组.由于scala与java都是运行在jvm中,双方可以相互调用,scala数组的底层实现实际上是java数组. 2.ArrayBuffer Scala中,如果需要长度可变的集合类,可以使用ArrayBuffer.使用前需要导入 scala.collection.mutable.ArrayBuffer.

Scala数组和集合

一.scala数组 数组定义1: var arr = new Array[String](3) String:存储的元素类型 3:存储3个元素 添加元素: arr(1) = "hello" 数组定义2: val arr1 = Array[Int](1,2,3,4,5,6) 改变内容:arr1(1) = 18 添加元素:arr1 += 22 长度不可以改变 二.数组方法 1.map(映射) 映射: 2 4 6 映射关系:f(x) = x*5 对应映射关系:10 20 30 例: scal