scala快速入门系列【数组】

        本篇作为scala快速入门系列的第十一篇博客,小菌为大家带来的是关于数组的相关内容。
在这里插入图片描述


数组

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

定长数组

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

语法

在这里插入图片描述
[!NOTE]

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

示例1

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

参考代码
在这里插入图片描述

示例2

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

参考代码
在这里插入图片描述


变长数组

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

        

定义变长数组

语法

  • 创建空的ArrayBuffer变长数组,语法结构:
    在这里插入图片描述
  • 创建带有初始元素的ArrayBuffer
    在这里插入图片描述
    [!NOTE]
            创建变长数组,需要提前导入ArrayBuffer
            import scala.collection.mutable.ArrayBuffer

示例1

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

参考代码
在这里插入图片描述

示例2

定义一个包含以下元素的变长数组。
在这里插入图片描述

参考代码
在这里插入图片描述


添加/修改/删除元素

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

示例

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

参考代码

在这里插入图片描述


遍历数组

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

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

示例1

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

参考代码
在这里插入图片描述

示例2

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

参考代码
在这里插入图片描述
[!NOTE]

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

数组常用算法

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

        以下为常用的几个算法:

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

求和

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

示例

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

参考代码

在这里插入图片描述


最大值

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

示例

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

参考代码
在这里插入图片描述


最小值

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

示例

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

参考代码
在这里插入图片描述


排序

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

示例

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

参考代码
在这里插入图片描述
        
        
        本篇博客到这里就结束了,感兴趣的小伙伴们可以持续关注哟~下一篇将为大家带来元组的基本使用,敬请期待!
在这里插入图片描述

发布了152 篇原创文章 · 获赞 1355 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/weixin_44318830/article/details/103976767