Scala——3. Scala数据Array

本文详细介绍了Scala中的Array数据结构,包括定长数组与变长数组的定义、增加和删除元素的方法,以及遍历和常用操作如求和、最大值、最小值等。此外,还提到了数组的拉链操作及其注意事项。
摘要由CSDN通过智能技术生成

1. 数组定义
Array 长度固定
ArrayBuffer 长度可变
如果提供初始值时可不使用new,底层会直接调用apply方法

  • 定常数组Array
    val a1 = Array(元素1, 元素2, …) 不需要new,底层调用apply()帮我们new
    var a2 = new Array[元素类型](数组长度)

  • 变长数组
    使用前需要导包 import scala.collection.mutable.ArrayBuffer
    val a3 = Array(元素1, 元素2, …)
    var a4 = new Array[元素类型]
    增加元素:
        a1 += 元素
        a1 += (元素1, 元素2, …)
        a1.+=(元素)
        a1.append(元素)
        a1 ++= 数组
        a1.insert(角标, 元素)
    删除元素:
        a1 -= 元素
        a1.remove(元素角标)

  • 遍历数组
    for循环
    until循环   .reverse
    map   .filter(…).map(…)

  • 数组常用方法
    arr.sum
    arr.max
    arr.min
    arr.sorted
    arr.sorted.reverse
    arr.toMap      对偶Array转为Map
    拉链操作
         arr1.zip(arr2)      如果两个数组的元素个数不一致,拉链操作后生成的数组的长度为较小的那个数组的元素个数
         arr1.zipAll(arr2, 默认值…)     如果其中一个元素的个数比较少,可以使用zipAll用默认的元素填充
     

2. 演示

  • 定长数组
scala> val a1 = new Array[String](4)
a1: Array[String] = Array(null, null, null, null)

scala> a1(1) = "hello"

scala> a1
res5: Array[String] = Array(null, hello, null, null)

scala> val a2 = Array("hello","world")
a2: Array[String] = Array(hello, world)

scala> a2(0)
res6: String = hello

scala> a2(0)="hi"

scala> a2
res8: Array[String] = Array(hi, world)

变长数组

scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer

scala> var a3 = new ArrayBuffer[Int]
a3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()

scala> var a4 = ArrayBuffer(1,2)
a4: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2)

scala> a4 += 3
res9: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)

scala> a4.append(4)

scala> a4
res11: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4)

scala> a4 -= 2
res12: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 3, 4)

scala> a4.remove(1)
res13: Int = 3

scala> a4
res14: scala.collection
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值