一、数组 (Array)
- Scala中的数组分为定长数组和变长数组,定长数组初始化后不可对数组长度进行修改,而变长数组则可以修改。
(一)定长数组
- Array的API文档:https://www.scala-lang.org/api/current/scala/Array.html
1、数组定义
(1)定义数组时初始化数据
-
自动推断数组类型
- 手动指定类型
(2)定义时指定数组长度,后赋值
-
先定义,后赋值
- 避免数组下标越界错误
2、数组遍历
- 定义数组
arr
(自动推断类型,静态初始化)
- 可以使用for循环对数组进行遍历,输出数组所有的元素
(1)传统for循环方式
-
通过数组下标来遍历数组元素
- 通过
arr.length - 1 to 0 by -1
实现反向遍历
-
说明:
num1 to num2 by 1
相当于num1 to num2
(2)增强for循环方式
- 正向遍历数组元素
- 反向遍历数组元素
(3)利用foreach算子遍历数组
- 利用Scala的
foreach
算子来遍历数组
课堂练习:数组求和
- 采用遍历算子
- 采用增强for循环
- 课堂练习:采用传统for循环来求和
3、常用方法
- Scala对数组提供了很多常用的方法,使用起来非常方便
- 定义数组
arr
(通过数组类的构造方法来初始化数组,静态初始化)
- 对数组
arr
也可以采用先定义后赋值的方式(动态初始化)
(1)求数组中数值总和
- 调用
sum
方法
(2)求数组中的最大值
- 调用
max
方法
(3)求数组中的最小值
- 调用
min
方法,也可以自己编写代码求最小值
(4)对数组实现升序
- 调用
sorted
方法
课堂练习:数组查询
-
定义一个整型数组,输入一个整数,判断该整数是否在数组里,如果在数组里,给出其位置,否则提示用户该整数不在数组里。
-
在
net.huawei.day03
包里创建Exercise01
对象
package net.zyf.day03
import scala.io.StdIn
/**
* 功能:
* 作者:zyf
* 时间:2023年03月00号
*/
object example {
def main(args: Array[String]): Unit = {
val arr = Array(4, 6, 8, 12, 9, 34, 18)
for (x <- arr) println(x.toString + " ")
println()
print("x = ")
val x = StdIn.readInt()
if (arr.contains(x)) {
for (i <- 0 until arr.length) {
if (x == arr(i))
println("arr(" + i + ") = " + x)
}
} else {
println(x.toString + "不在数组")
}
}
}
1、数组定义
- 变长数组使用类
scala.collection.mutable.ArrayBuffer
进行定义 - 定义一个变长
Int
类型数组arr
,利用+=
运算符、append方法添加一个数组元素(注意是追加元素),还可以利用appendAll方法添加一个数组(多个元素)
遍历数组arr
,跟遍历定长数组没有不同