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

概念

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")

在这里插入图片描述

添加/修改/删除元素
  • 使用+=添加元素

  • 使用-=删除元素

  • 使用++=追加一个数组到变长数组

  • remove(从第几个索引开始 , 删除几个)方法 如果只删除一个第二个参数可以省略
    例如 删除数组从索引而开始后面的三个元素 : arr1.remove(0,3)

  • insert(从第几个索引开始插入 , 插入的数据,可以是多个)方法
    例如 把1,2,3插入到arr1数组开头 位置 : arr1.insert(0,1,2,3)

代码示例
//往刚创建的 变长数组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(a(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

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值