文末有大量学习资源哦,免费领取。如果觉得内容不错,别忘记一键三连哦!!!
1、数组
1.1 定长数组
- 定长数组指的是数组的长度是不允许改变的
- 数组的元素是可以改变的
语法
// 通过指定长度定义数组
val/var 变量名 = new Array[元素类型](数组长度)
// 用元素直接初始化数组
val/var 变量名 = Array(元素1, 元素2, 元素3...)
参考代码
// 通过指定长度定义数组
scala> val a = new Array[Int](5)
a: Array[Int] = Array(0, 0, 0, 0, 0)
scala> a(0) = 110
scala> println(a(0))
110
// 用元素直接初始化数组
// 定义包含jave、scala、python三个元素的数组
scala> val a = Array("java", "scala", "python")
a: Array[String] = Array(java, scala, python)
scala> a.length
res17: Int = 3
1.2 变长数组
变长数组指的是数组的长度是可变的,可以往数组中添加、删除元素
1.2.1 定义变长数组
创建变长数组,需要提前导入ArrayBuffer类import scala.collection.mutable.ArrayBuffer
语法
-
创建空的ArrayBuffer变长数组,语法结构:
val/var a = ArrayBuffer[元素类型]()
-
创建带有初始元素的ArrayBuffer
val/var a = ArrayBuffer(元素1,元素2,元素3....)
示例
// 定义一个长度为0的整型变长数组
val a = ArrayBuffer[Int]()
// 定义一个包含内容的变长数组
scala> val a = ArrayBuffer("hadoop", "storm", "spark")
a: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(hadoop, storm, spark)
1.2.2 添加/修改/删除元素
- 使用
+=
添加元素 - 使用
-=
删除元素 - 使用
++=
追加一个数组到变长数组
示例
// 定义变长数组
scala> val a = ArrayBuffer("hadoop", "spark", "flink")
a: scala.collection.mutable.ArrayBuffer[String] = ArrayBuffer(hadoop, spark, flink)
// 追加一个元素
scala> a += "flume"
res10: a.type = ArrayBuffer(hadoop, spark, flink, flume)
// 删除一个元素
scala> a -= "hadoop"
res11: a.type = ArrayBuffer(spark, flink, flume)
// 追加一个数组
scala> a ++= Array("hive", "sqoop")
res12: a.type = ArrayBuffer(spark, flink, flume, hive, sqoop)
1.3 遍历数组
可以使用以下两种方式来遍历数组:
-
使用
for表达式
直接遍历数组中的元素 -
使用
索引
遍历数组中的元素
参考代码
// 使用`for表达式`直接遍历数组中的元素
scala> val a = Array(1,2,3,4,5)
a: Array[Int] = Array(1, 2, 3, 4, 5)
scala> for(i<-a) println(i)
1
2
3
4
5
// 使用`索引`遍历数组中的元素
1、0 to n ——包含0,也包含n
scala> for(i <- 0 to a.length - 1) println(a(i))
1
2
3
4
5
2、0 until n——生成一系列的数字,包含0,不包含n
scala> for(i <- 0 until a.length) println(a(i))
1.4 数组常用算法
scala中的数组封装了一些常用的计算操作,将来在对数据处理的时候,不需要我们自己再重新实现。以下为常用的几个算法:
- 求和——sum方法
- 求最大值——max方法
- 求最小值——min方法
- 排序——sorted方法
1.4.1 求和
数组中的sum
方法可以将所有的元素进行累加,然后得到结果
示例
scala> val a = Array(1,2,3,4)
a: Array[Int] = Array(1, 2, 3, 4)
// 求和
scala> a.sum
res49: Int = 10
// 最大值
scala> a.max
res50: Int = 10
// 最小值
scala> a.min
res51: Int = 1
1.4.2 排序
数组的sorted
方法,可以对数组进行升序排序。而reverse
方法,可以将数组进行反转,从而实现降序排序
示例
// 升序排序
scala> a.sorted
res53: Array[Int] = Array(1, 2, 4, 4, 10)
// 降序
scala> a.sorted.reverse
res56: Array[Int] = Array(10, 4, 4, 2, 1)
下一期我们讲解元组、列表、集、映射
给大家准备的各类书籍都在这里啦,收集不易,期待您的一键三连,后续还会更新文章哦,谢谢您的关注和点赞,您的点赞会让我有加倍动力
https://shimo.im/docs/863dvkxgWHtwcWkh/ 《书籍》