上QQ阅读APP看书,第一时间看更新
1.4.1 数组
Scala中的数组分为定长数组和变长数组,定长数组初始化后不可对数组长度进行修改,而变长数组则可以修改。
1.定长数组
(1)数组定义
定义数组的同时可以初始化数据,代码如下:
val arr=Array(1,2,3) //自动推断数组类型
或者
val arr=Array[Int](1,2,3) //手动指定数据类型
也可以在定义时指定数组长度,稍后对其添加数据,代码如下:
val arr=new Array[Int](3) arr(0)=1 arr(1)=2 arr(2)=3
(2)数组遍历
可以使用for循环对数组进行遍历,输出数组所有的元素,代码如下:
val arr=Array(1,2,3) for(i<-arr){ println(i) }
(3)常用方法
Scala对数组提供了很多常用的方法,使用起来非常方便,代码如下:
val arr=Array(1,2,3) //求数组中所有数值的和 val arrSum=arr.sum //求数组中的最大值 val arrmAx=arr.max //求数组中的最小值 val arrMin=arr.min //对数组进行升序排序 val arrSorted=arr.sorted //对数组进行降序排序 val arrReverse=arr.sorted.reverse
2.变长数组
(1)数组定义
变长数组使用类scala.collection.mutable.ArrayBuffer进行定义,例如以下代码:
//定义一个变长Int类型数组 val arr=new ArrayBuffer[Int]() //向其中添加3个元素 arr+=1 arr+=2 arr+=3 println(arr)
上述代码输出结果为:
ArrayBuffer(1, 2, 3)
也可以使用-=符号对变长数组中的元素进行删减,例如,去掉数组arr中值为3的元素:
arr-=3
若数组中有多个值为3的元素,则从前向后删除第一个匹配的值。
(2)数组合并
Scala支持使用++=符号将两个变长数组进行合并,例如,将数组a2的所有元素追加到数组a1中,代码如下:
val a1=ArrayBuffer(1,2,3,4,5) val a2=ArrayBuffer(6,7) println(a1++=a2)
输出结果如下:
ArrayBuffer(1, 2, 3, 4, 5, 6, 7)
(3)在固定位置插入元素
使用insert()方法可以在数组指定的位置插入任意多个元素,例如,在数组arr的下标为0的位置插入两个元素1和2,代码如下:
arr.insert(0,1,2)
(4)在固定位置移除元素
使用remove()方法可以在数组的固定位置移除指定数量的元素,例如,从数组arr的下标为1的位置开始移除两个元素,代码如下:
val arr=ArrayBuffer[Int](1,2,3,4,5) arr.remove(1, 2) println(arr)
输出结果如下:
ArrayBuffer(1, 4, 5)