Scala中的ArrayBuffer(创建可变数组)

Scala中的ArrayBuffer

在Scala中,数组是不可变的,并且包含同质元素,即数组的大小不能更改,并且数组的所有元素都包含相同的元素。

ArrayBuffer是一个特殊的类,用于创建可变数组。

要使用ArrayBuffer,我们将导入

    scala.collection.mutable.ArrayBuffer

语法:

在Scala中创建ArrayBuffer的语法,

    var arrayBuffer = ArrayBuffer("element1", "element2", ...)

程序创建一个ArrayBuffer

import scala.collection.mutable.ArrayBuffer

object MyClass {
    def main(args: Array[String]) {
        println("我的自行车是 ")
        val bikes = ArrayBuffer("ThunderBird 350", "YRF R3")
        for(i <- 0 to bikes.length-1)
            println(bikes(i))

        // 添加一个字符串 
        bikes += "iron 883"
        println("After adding new bike to my collection")
        for(i <- 0 to bikes.length-1)
            println(bikes(i))
        
    }
}

输出结果

我的自行车是 
ThunderBird 350
YRF R3
After adding new bike to my collection
ThunderBird 350
YRF R3
iron 883

您可以使用+ =运算符并使用方法将新element(s)的添加到ArrayBuffer中append()

向ArrayBuffer添加新元素

import scala.collection.mutable.ArrayBuffer

object MyClass {
    def main(args: Array[String]) {
        println("我的自行车是 ")
        val bikes = ArrayBuffer[String]()
        
        bikes += "ThunderBird 350"
        bikes += ("YRF R3", "Iron 883")
        bikes.append("BMW S1000 RR")
        
        for(i <- 0 to bikes.length-1)
            println(bikes(i))
    }
}

输出结果

我的自行车是 
ThunderBird 350
YRF R3
Iron 883
BMW S1000 RR

删除数组元素

您还可以使用-=运算符和ArrayBuffer删除ArrayBuffer的元素。remove()方法。

语法:

使用-=运算符删除一个元素

    ArrayBuffer -= (arrayElement)

使用-=运算符删除多个元素

    ArrayBuffer -= (arrayElement1, arrayElement2, ...)

使用remove方法删除元素

    ArrayBuffer -= (arrayElementposition)

删除ArrayBuffer元素的程序

import scala.collection.mutable.ArrayBuffer

object MyClass {
    def main(args: Array[String]) {
        val bikes = ArrayBuffer("ThunderBird 350", "YRF R3", "Iron 883", "BMW S1000 RR", "BMW GSA")
        println("我的自行车是 ")
        for(i <- 0 to bikes.length-1)
            println(bikes(i))
            
        println("移除元素...")   
        bikes -= "YRF R3"
        bikes -= ("Iron 883", "BMW GSA")
        bikes.remove(1)
        for(i <- 0 to bikes.length-1)
            println(bikes(i))
    }
}

输出结果

我的自行车是 
ThunderBird 350
YRF R3
Iron 883
BMW S1000 RR
BMW GSA
移除元素...
ThunderBird 350

这些是对ArrayBuffer的一些操作,这是一个创建Array可变变量的特殊类。