Scala 数组 、遍历数组 和 数组常用和操作

不打扰是莪最后的温柔 提交于 2020-01-17 16:51:58

概念

scala中数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,另一种是变长数组

定长数组

概念
  • 定长数组指的是数组的长度不允许改变
  • 数组的元素可以改变
语法
// 在scala中,数组的泛型使用`[]`来指定
// 使用`()`来获取元素
// 通过指定长度定义数组
val/var 变量名 = new Array[元素类型](数组长度)

// 用元素直接初始化数组
val/var 变量名 = Array(元素1, 元素2, 元素3...)
代码示例
//方式一
//创建
val a = new Array[Int](100)
//赋值
a(0) = 110
//输出
println(a(0))

//方式二
// 定义包含jave、scala、python三个元素的数组
val a = Array("java", "scala", "python")
//获取数组的长度
a.length

在这里插入图片描述

变长数组

概念

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

定义

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

语法

//创建空的可变长度数组
val/var a = ArrayBuffer[元素类型]()
//创建带有初始元素的ArrayBuffer
val/var a = ArrayBuffer(元素1,元素2,元素3....)

代码示例

//导包
import scala.collection.mutable.ArrayBuffer
//定义一个长度为0的整型变长数组
val a = ArrayBuffer[Int]()
//定义一个包含"hadoop", "storm", "spark" 三个元素的变长数组
val a = ArrayBuffer("hadoop", "storm", "spark")

在这里插入图片描述

添加/修改/删除元素

  • 使用+=添加元素
  • 使用-=删除元素
  • 使用++=追加一个数组到变长数组
代码示例
//往刚创建的 变长数组a 中添加 "flume" 这个元素
a += "flume"
// 删除一个元素
a -= "hadoop"
// 追加一个数组 该数组中包含 hive 和 sqoop 两个属性
 a ++= Array("hive", "sqoop")

在这里插入图片描述

遍历数组

一般使用两种方式

  1. 使用for表达式直接遍历数组中的元素
  2. 使用索引遍历数组中的元素

直接遍历

代码示例
//定义一个数组 
val a: Array[Int] =Array(1,2,3,4,5)
//直接遍历输出
    for (i <- a ) {
        println(i)
    }

在这里插入图片描述

根据索引遍历

代码示例
//说明
	//0 until n——生成一系列的数字,包含0,不包含n
	//0 to n ——包含0,也包含n
	//定义一个数组
	val a: Array[Int] =Array(1,2,3,4,5)
	//方式一
	for (i <- 0 to a.length-1) {
        println(i)
    }
	//方式二
    for ( i <- 0 until a.length){
        println(a(i));
    }
	//方式三 indices 获取索引
    for (i <- a.indices) {
        println(a(i));
    }

在这里插入图片描述

数组常用算法

scala中的数组封装了一些常用的计算操作,将来在对数据处理的时候,不需要我们自己再重新实现。以下为常用的几个算法:

  • 求和——sum方法
  • 求最大值——max方法
  • 求最小值——min方法
  • 排序——sorted方法

求和

数组中的sum方法可以将所有的元素进行累加,然后得到结果

代码示例
val b: Array[Int] =Array(1,2,3,4,5,6,7,8,9)
    println(b.sum)

在这里插入图片描述

求最大值

数组中的max方法,可以获取到数组中的最大的那个元素值

代码示例
//定义一个数组
val c: Array[Int] =Array(1,2,3,9,5,12,5,8,10)
//输出最大值
println(c.max)

在这里插入图片描述

求最小值

数组的min方法,可以获取到数组中最小的那个元素值

代码示例
//输出最小值
println(c.min)

在这里插入图片描述

排序

数组的sorted方法,可以对数组进行升序排序。而reverse方法,可以将数组进行反转,从而实现降序排序

代码示例
//定义一个数组
val c: Array[Int] =Array(1,2,3,9,5,12,5,8,10)
//升序
c.sorted
//降序
c.sorted.reverse

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!