Scala-数组

本文介绍了Scala中的定长数组和变长数组。定长数组长度固定,元素可变;变长数组允许长度变化,支持添加、删除元素。通过ArrayBuffer类创建变长数组,并展示了添加、删除元素的操作。此外,还讲解了如何遍历数组及使用sum、max、min和sorted等常用算法。
摘要由CSDN通过智能技术生成

Scala定义数组


Scala中有两种数组,一种是 定长数组,另一种是 变长数组
数组的泛型使用[]来指定,使用()来获取元素。


定长数组

  • 数组长度不允许改变
  • 数组的元素可以改变

语法:

// 通过指定长度定义数组
val/var 变量名 = new Array[元素类型] (数组长度)
// 用元素直接初始化数组
val/var 变量名 = Array(元素1,元素2,元素3,……)

变长数组

创建变长数组,需要提前导入ArrayBuffer类import scala.collection.mutable.ArrayBuffer

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

语法:

// 通过指定长度定义数组
val/var a = new ArrayBuffer[元素类型] ()
// 用元素直接初始化数组
val/var a = ArrayBuffer(元素1,元素2,元素3…)

添加/修改/删除元素

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

代码参考:

// 定义变长数组
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. 使用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. 使用索引遍历数组中的元素

参考代码:

scala> val a = Array(1,2,3,4,5)
a: Array[Int] = Array(1, 2, 3, 4, 5)

scala> for(i <- 0 to a.length - 1) println(a(i))
1
2
3
4
5

scala> for(i <- 0 until a.length) println(a(i))
1
2
3
4
5

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

数组常用算法

以下为常用的几个算法:

  • 求和——sum方法
  • 求最大值——max方法
  • 求最小值——min方法
  • 排序——sorted方法
// 升序排序
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值