Spark 3.x大数据分析实战(视频教学版)
上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)