Spark学习(6)——scala数组操作

Array

scala中,Array代表的含义与Java类似,也是长度不可变的数组,此外

由于Javascala都是运行在JVM中,双方可以互相调用,因此scala的底层

实际上是Java数组,例如字符串的数组在底层实际上就是JavaString [] 数组

整数数组在底层实际上是Javaint []

数组初始化后,长度就固定下来了,而且元素全部根据其类型初始化

可以直接使用Array()创建数组,元素类型自动推断

获取数组内的值

当数组内的元素类型不一致时,scala自动推断数组类型为Any

ArrayBuffer

scala中,如需要像JavaArrayList这种长度可变的集合类,则可以使用ArrayBuffer

ArrayBuffer类不能直接使用,使用之前需要先导入ArrayBuffer

使用ArrayBuffer的方式可以创建一个空的ArrayBuffer

使用+=操作符,可以添加一个元素或者多个元素,这个方法在Spark源码中大量使用

使用++=操作符可以添加其他集合中的所有元素

运行结果:

使用trimEnd,可以从尾部截断指定个数的元素,b.trimEnd(5),

运行结果:

使用b.insert(3,5) 在指定位置插入元素

运行结果:

ArrayArrayBuffer互相转换

运行结果:

遍历Array和ArrayBuffer

for循环和until遍历ArrayArraybuffer

UntilRichInt提供的函数

跳跃遍历ArrayArraybuffer

从尾部遍历ArrayArraybuffer

使用增强for循环遍历ArrayArrayBuffer

数组常见操作

数组元素求和

获取数组最大值

对数组进行排序

获取数组中所有元素内容

数组转换

Array进行转换,获取的还是Array,对一个数组求平方,用yield

ArrayBuffer进行转换,获取的还是ArrayBuffer

结合if守卫仅转换需要的元素

使用函数式编程转换数组,filter过滤出这个数组中除2等于0的,然后map成另一个数组,将过滤出的数乘以2

算法案例:移出第一个负数之后所有的负数

构建数组,每发现第一个负数之后的负数就移出掉

Val a =ArrayBuffer[Int]()

a += (1,2,3,4,5,-1.-3.-5,-7)

运行结果:

算法案例:移出第一个负数之后所有的负数

遍历ArrayArrayBuffer

遍历ArrayArrayBuffer

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值