Scala中的数组分为了不可变的数组Array和可变数组ArrayBuffer。可变数组指的是长度不可变,内容可变。可变数组指的是长度和内容都可变。Scala中默认使用的是不可变数组,要使用可变数组,要先导入才能使用。
1. 不可变数组Array
定义方式一:
scala> val arr1=Array[Int](1,3,5,6,8)
arr1: Array[Int] = Array(1, 3, 5, 6, 8)
scala> val arr2=Array(2.6,5.8,9.99)
arr2: Array[Double] = Array(2.6, 5.8, 9.99)
从上面示例中可以看到,用这种方式定义数组时,可以指明数组类型,也可以不指定。不指定时会根据数据类型自动推断数组的类型。
定义方式二:
scala> val arr3=new Array[Int](5)
arr3: Array[Int] = Array(0, 0, 0, 0, 0)
使用此种方式定义时,必须指明数组类型和长度。定义的同时,会给各元素赋初值。
取值与赋值:
scala> arr1(0)
res3: Int = 1
scala> arr1(3)=10
scala> arr1(6)
java.lang.ArrayIndexOutOfBoundsException: 6
... 32 elided
取值与赋值都是使用数组的下标,下标索引从0开始。同样要注意下标越界的问题。
2. 可变数组ArrayBuffer
要使用可变数组,首先要导入:
scala> val ab=ArrayBuffer(1,2,3,4,5,6)
val ab=ArrayBuffer(1,2,3,4,5,6)
如果不导入直接使用,会报上述错误。
scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
scala> val ab=ArrayBuffer(1,2,3,4,5,6)
ab: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5, 6)
scala> val ab2=new ArrayBuffer[Int]()
ab2: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()
从上例中可以看到,ArrayBuffer的定义同样可以采用两种形式。因为长度是可变的,所以采用第二种方式定义时,可以不用指定长度,只指明类型即可。
>>本文地址:https://www.ujiuye.com/zhuanye/2021/70697.html
声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。
1 您的年龄
2 您的学历
3 您更想做哪个方向的工作?