Scala学习之数组与元组

一、数组

1.1 概述

数组就是用来存储多个同类型元素的容器, 每个元素都有编号(也叫: 下标, 脚标, 索引), 且编号都是从0开始数的.
Scala中, 有两种数组,一种是定长数组,另一种是变长数组

1.2 定长数组

1.2.1 特点
1. 数组的长度不允许改变.
2. 数组的内容是可变的.
1.2.2 语法
格式一: 通过指定长度定义数组

格式二: 通过指定元素定义数组

 

注意:
1. scala 中,数组的泛型使用 [] 来指定 .
2. 使用 数组名 ( 索引 ) 来获取数组中的元素 .
3. 数组元素是有默认值的 , Int:0, Double:0.0, String: null
4. 通过 数组名 .length 或者 数组名 .size 来获取数组的长度 .

 1.2.3 示例

需求
1. 定义一个长度为10的整型数组, 设置第1个元素为11, 并打印第1个元素.
2. 定义一个包含"java", "scala", "python"这三个元素的数组, 并打印数组长度.
参考代码

1.3 变长数组

1.3.1 特点
数组的长度和内容都是可变的,可以往数组中添加、删除元素.
1.3.2 语法
创建变长数组,需要先导入ArrayBuffer类

定义格式一: 创建空的ArrayBuffffer变长数组

 

定义格式二: 创建带有初始元素的ArrayBuffffer变长数组

 

1.3.3 示例一: 定义变长数组

1. 定义一个长度为0的整型变长数组.
2. 定义一个包含"hadoop", "storm", "spark"这三个元素的变长数组.
3. 打印结果 

参考代码

 

1.3.4 示例二: 增删改元素
针对Scala中的变长数组, 可通过下述方式来修改数组中的内容

格式
使用 += 添加单个元素
使用 - = 删除单个元素
使用 ++= 追加一个数组到变长数组中
使用 -- = 移除变长数组中的指定多个元素
示例
1. 定义一个变长数组,包含以下元素 : "hadoop", "spark", "flflink"
2. 往该变长数组中添加一个 "flflume" 元素
3. 从该变长数组中删除 "hadoop" 元素
4. 将一个包含 "hive", "sqoop" 元素的数组 , 追加到变长数组中 .
5. 从该变长数组中删除 "sqoop", "spark" 这两个元素 .
6. 打印数组 , 查看结果 .
参考代码

 

1.4 遍历数组

概述

在Scala中, 可以使用以下两种方式来遍历数组:
1. 使用 索引 遍历数组中的元素
2. 使用 for表达式 直接遍历数组中的元素

示例
1. 定义一个数组,包含以下元素1,2,3,4,5
2. 通过两种遍历方式遍历数组,并打印数组中的元素 

参考代码

注意:
0 until n 获取0~n之间的所有整数, 包含0, 不包含n.
0 to n 获取0~n之间的所有整数, 包含0, 也包含n. 

1.5 数组常用算法

概述

Scala中的数组封装了一些常用的计算操作,将来在对数据处理的时候,不需要我们自己再重新实现, 而是可以直接
拿来用。以下为常用的几个算法:
sum()方法: 求和
max()方法: 求最大值
min()方法: 求最小值
sorted()方法: 排序, 返回一个新的数组.
reverse()方法: 反转, 返回一个新的数组

需求
1. 定义一个数组, 包含4, 1, 6, 5, 2, 3这些元素.
2. 在main方法中, 测试上述的常用算法

参考代码

二、元组

元组一般用来存储多个不同类型的值。例如同时存储姓名,年龄,性别,出生年月这些数据, 就要用到元组来存储了。并且元组的长度和元素都是不可变的。 

2.1 格式

格式一 : 通过小括号实现

格式二: 通过箭头来实现

 

注意: 上述这种方式, 只适用于元组中只有两个元素的情况.

2.2 示例 

需求
1. 定义一个元组,包含学生的姓名和年龄.
2. 分别使用小括号以及箭头的方式来定义元组.

参考代码

2.3 访问元组中的元素

在Scala中, 可以通过 元组名._编号 的形式来访问元组中的元素,_1表示访问第一个元素,依次类推.也可以通过 元组名.productIterator 的方式, 来获取该元组的迭代器, 从而实现遍历元组.

格式

格式一: 访问元组中的单个元组. 

 

格式二: 遍历元组

 

示例
1. 定义一个元组,包含一个学生的姓名和性别,"zhangsan", "male"
2. 分别获取该学生的姓名和性别, 并将结果打印到控制台上

参考代码 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值