Spark基础学习笔记11:Scala数据结构

目录

一、数组 (Array)

1、数组定义

2、数组遍历

3、常用方法

(二)变长数组

1、数组定义

2、数组合并

3、插入元素 

4、移除元素

二、列表 (List)

(一)不可变列表

1、创建不可变列表

2、给列表添加元素

3、列表合并操作

4、二维列表

(二)可变列表

1、创建可变列表

3、列表排序

4、列表总和、平均值、最值

5、添加新元素

​编辑 6、移除列表元素

三、映射 (Map)

(一)不可变映射

1、创建不可变映射

2、遍历不可变映射

(二)可变映射

1、创建可变映射

2、修改可变映射

3、查询可变映射

4、添加元素

5、删除元素

四、元组 (Tuple)

(一)定义元组

1、直接赋值定义元组

2、创建指定长度的元组

(二)访问元组

(三)迭代元组

(四)元组转为字符串

五、集合 (Set)

(一)定义集合

(二)增减元素

(三)集合方法

1、获取首元素

2、获取去首子集合

3、两个集合求并集

4、两个集合求交集

5、求集合的最值


一、数组 (Array)

Scala中的数组分为定长数组和变长数组,定长数组初始化后不可对数组长度进行修改,而变长数组则可以修改。

1、数组定义

(1)定义数组时初始化数据

自动推断数组类型

手动指定数据类型

(2)定义时指定数组长度,后赋值

先定义,后赋值

 避免数组下标越界错误

2、数组遍历

定义数组arr(自动推断类型,静态初始化)

可以使用for循环对数组进行遍历,输出数组所有的元素

 (1)传统for循环方式

通过数组下标来遍历数组元素

  • 大家可以看到,反向遍历没有输出结果,怎么解决这个问题?
  • 参考一下Java正向和反向遍历数组,看能否得到启发

 通过(arr.length - 1 to 0) by -1实现反向遍历

 (2)增强for循环方式

正向遍历数组元素

 反向遍历数组元素

3、常用方法

  • Scala对数组提供了很多常用的方法,使用起来非常方便
  • 定义数组arr

 (1)求数组中数值总和

调用sum方法

 (2)求数组中的最大值

调用max方法

 (3)求数组中的最小值

调用min方法

 (4)对数组进行升序排序

调用.sorted方法

 (5)对数组进行降序排序

调用.sorted.reverse方法

(二)变长数组

1、数组定义

  • 变长数组使用类scala.collection.mutable.ArrayBuffer进行定义

  • 定义一个变长Int类型数组arr

 利用+=运算符添加数组元素(注意是追加元素)

 遍历数组arr,跟遍历定长数组没有不同

 利用-=运算符删除数组元素

 数组中有多个值为4的元素,则从前向后删除第一个匹配的元素,本次删除,第一个4被删除了,但是第二4还依然存在。

2、数组合并

  • Scala支持使用++=符号将两个变长数组进行合并
  • 定义两个变长数组arr1arr2,合并生成变长数组arr3

  • 注意:arr1会是合并后的数据,即ArrayBuffer(1, 2, 3, 4, 5, 6, 7, 8)
  • 数组arr2arr1,合并生成变长数组arr4

3、插入元素 

  • 使用insert()方法可以在数组指定位置插入一个元素
  • 在数组arr的下标为1的位置插入一个元素666

 注意:一次插入多个元素是要报错的

 如果插入的位置参数超出数组的长度,报错

 如果插入的位置参数等于数组长度,那么就相当于在末尾追加新元素

4、移除元素

  • 使用remove()方法可以在数组的固定位置移除指定数量的元素
  • 从数组arr的下标为1的位置开始移除2元素

如果移除起始位置+删除数量 > 数组长度,那么就会报错

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值