本篇作为scala快速入门系列的第十一篇博客,小菌为大家带来的是关于数组的相关内容。
scala快速入门系列【数组】_scala教程


数组

        scala中数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,另一种是变长数组。

定长数组

        定长数组指的是数组的长度是不允许改变。

语法

scala快速入门系列【数组】_框架_02
[!NOTE]

  • 在scala中,数组的泛型使用 [] 来指定
  • 使用 () 来获取元素

示例1

  1. 定义一个长度为100的整型数组
  2. 设置第1个元素为110
  3. 打印第1个元素

参考代码
scala快速入门系列【数组】_大数据_03

示例2

  1. 定义一个包含以下元素的数组
  2. 获取数组长度

参考代码
scala快速入门系列【数组】_scala教程_04


变长数组

        变长数组指的是数组的长度是可变的,可以往数组中添加、删除元素

        

定义变长数组

语法

  • 创建空的ArrayBuffer变长数组,语法结构:
    scala快速入门系列【数组】_scala教程_05
  • 创建带有初始元素的ArrayBuffer
    scala快速入门系列【数组】_大数据_06
    [!NOTE]
            创建变长数组,需要提前导入ArrayBuffer
            import scala.collection.mutable.ArrayBuffer

示例1

定义一个长度为0的整型变长数组。

参考代码
scala快速入门系列【数组】_框架_07

示例2

定义一个包含以下元素的变长数组。
scala快速入门系列【数组】_框架_08

参考代码
scala快速入门系列【数组】_scala教程_09


添加/修改/删除元素

  • 使用 += 添加元素
  • 使用 -= 删除元素
  • 使用 ++= 追加一个数组到变长数组

示例

  1. 定义一个变长数组,包含以下元素: “hadoop”, “spark”, “flink”
  2. 往该变长数组添加一个"flume"元素
  3. 从该变长数组删除"hadoop"元素
  4. 再将一个包含"hive", "sqoop"的数组追加到变长数组中

参考代码

scala快速入门系列【数组】_scala教程_10


遍历数组

        可以使用以下两种方式来遍历数组:

  • 使用 for表达式 直接遍历数组中的元素
  • 使用 索引 遍历数组中的元素

示例1

  1. 定义一个数组,包含以下元素1,2,3,4,5
  2. 使用for表达式直接遍历,并打印数组的元素

参考代码
scala快速入门系列【数组】_框架_11

示例2

  1. 定义一个数组,包含以下元素1,2,3,4,5
  2. 使用for表达式基于索引下标遍历,并打印数组的元素

参考代码
scala快速入门系列【数组】_框架_12
[!NOTE]

  • 0 until n——生成一系列的数字,包含0,不包含n
  • 0 to n——包含0,也包含n

数组常用算法

        scala中的数组封装了丰富的计算操作,将来在对数据处理的时候,不需要我们自己再重新实现。

        以下为常用的几个算法:

  • 求和——sum方法
  • 求最大值——max方法
  • 求最小值——min方法
  • 排序——sorted方法

求和

        数组中的sum方法可以将所有的元素进行累加,然后得到结果。

示例

  1. 定义一个数组,包含以下几个元素(1,2,3,4)
  2. 请计算该数组的和

参考代码

scala快速入门系列【数组】_框架_13


最大值

        数组中的max方法,可以获取到数组中的最大的那个元素值。

示例

  1. 定义一个数组,包含以下几个元素(4,1,2,4,10)
  2. 获取数组的最大值

参考代码
scala快速入门系列【数组】_大数据_14


最小值

        数组的 min 方法,可以获取到数组中最小的那个元素值。

示例

  1. 定义一个数组,包含以下几个元素(4,1,2,4,10)
  2. 获取数组的最小值

参考代码
scala快速入门系列【数组】_scala教程_15


排序

        数组的 sorted 方法,可以对数组进行升序排序。而reverse方法,可以将数组进行反转,从而 实现降序排序。

示例

  1. 定义一个数组,包含以下几个元素(4,1,2,4,10)
  2. 对数组进行升序排序、降序排序

参考代码
scala快速入门系列【数组】_scala教程_16
        
        
        本篇博客到这里就结束了,感兴趣的小伙伴们可以持续关注哟~下一篇将为大家带来元组的基本使用,敬请期待!
scala快速入门系列【数组】_大数据_17