Scala ListBuffer –创建可变列表

Scala列表

列表是相同数据类型的不可变元素的集合。在scala中,该列表表示一个链接列表。

您无法更新列表,因为它是不可变的,因此对于添加,更新,删除等功能,我们需要创建一个可变的列表,该列表是使用ListBuffer完成的。

Scala ListBuffer

ListBuffer是不可变的特殊列表类型,即可以更新ListBuffer。

在Scala中创建一个空的ListBuffer的语法,

    var ListBuffer_name = new ListBuffer[datatype]()

使用Scala中的元素创建ListBuffer的语法,

    var ListBuffer_name = new ListBuffer(element1, element2, element3...)

为了在Scala中创建ListBuffer,我们需要使用以下语句将ListBuffer类导入到程序中:

    import scala.collection.mutable.ListBuffer

ListBuffer操作

我们可以执行更新操作,例如在ListBuffer中添加和删除元素。

1)访问ListBuffer的元素

我们可以使用使用ListBuffer中的元素的索引值来访问ListBuffer中的任何元素,就像访问列表中的元素一样。

用于访问ListBuffer的i元素的语法,

    listBuffer(i)

程序访问ListBuffer的元素

import scala.collection.mutable.ListBuffer

object MyObject {
    def main(args: Array[String]) {
        var city = ListBuffer("Delhi" , "Mumbai" , "Indore" , "Pune")
        println("进入ListBuffer的第二个元素: " + city(1))
        println("进入ListBuffer的第三个元素: " + city(2))
    }
}

输出:

进入ListBuffer的第二个元素: Mumbai
进入ListBuffer的第三个元素: Indore

2)将元素添加到ListBuffer

可以在同一ListBuffer中添加新元素。有几种方法可用于将元素添加到ListBuffer。他们是,

  1. 使用+ =运算符

  2. 使用append()方法

语法:

    //将单个元素添加到ListBuffer的语法,
    ListBuffer += element
    //将多个元素添加到ListBuffer的语法,
    ListBuffer += (element1, element2, element3, ...)

注意:以上两种语法都用于append()ListBuffer的元素,即元素将添加到ListBuffer的末尾。但是您也可以在Scala中添加列表,即使用以下语法在ListBuffer的开头添加元素,

    element +=: ListBuffer

使用+ =运算符将元素添加到ListBuffer的程序

import scala.collection.mutable.ListBuffer

object MyObject {
    def main(args: Array[String]) {
        var bikes = ListBuffer[String]()
        println("空的ListBuffer: " + bikes)
        
        println("Adding a single element to the ListBuffer")
        bikes += "ThunderBird 350"
        println("ListBuffer: " + bikes)
        
        println("Adding multiple element to the listBuffer")
        bikes += ( "Iron 833", "S1000RR" )
        println("ListBuffer: " + bikes)
        
        println("Adding elements at the start of the ListBuffer")
        ("Pulsar 150") +=: bikes
        println("ListBuffer: " + bikes)
    }
}

输出:

空的ListBuffer: ListBuffer()Adding a single element to the ListBuffer
ListBuffer: ListBuffer(ThunderBird 350)
Adding multiple element to the listBuffer
ListBuffer: ListBuffer(ThunderBird 350, Iron 833, S1000RR)
Adding elements at the start of the ListBuffer
ListBuffer: ListBuffer(Pulsar 150, ThunderBird 350, Iron 833, S1000RR)

append()方法用于在ListBuffer的末尾添加元素。

语法:

    ListBuffer.append(element1, element2, element3...)

使用append()方法将元素添加到ListBuffer的程序

import scala.collection.mutable.ListBuffer

object MyObject {
    def main(args: Array[String]) {
        var lang = ListBuffer[String]()
        println("空的ListBuffer: " + lang)

        println("Adding a single element to the ListBuffer")
        lang.append("C")
        println("ListBuffer: " + lang)

        println("Adding multiple element to the listBuffer")
        lang.append( "C++", "Scala" , "Python" )
        println("ListBuffer: " + lang)
    }
}

输出:

空的ListBuffer: ListBuffer()Adding a single element to the ListBuffer
ListBuffer: ListBuffer(C)Adding multiple element to the listBuffer
ListBuffer: ListBuffer(C, C++, Scala, Python)

3)从ListBuffer删除元素

在ListBuffer中,您可以删除元素。有几种从ListBuffer删除元素的方法。他们是

  1. 使用-=运算符

  2. 使用remove()方法

我们可以使用-=运算符删除单个或多个元素。

语法:

    //从ListBuffer删除单个元素,
    ListBuffer -= element
    //从ListBuffer删除多个元素,
    ListBuffer -= (element1, element2, element3, ...)

程序使用-=方法从ListBuffer删除元素

import scala.collection.mutable.ListBuffer

object MyObject {
    def main(args: Array[String]) {
        var listbuffer = ListBuffer(4, 5, 1, 7 ,21, 43, 99)
        println("ListBuffer: " + listbuffer)

        println("Removing single element to the ListBuffer")
        listbuffer -= 43
        println("ListBuffer: " + listbuffer)

        println("Removing multiple element to the ListBuffer")
        listbuffer -= (4, 99, 1)
        println("ListBuffer: " + listbuffer)
    }
}

输出:

ListBuffer: ListBuffer(4, 5, 1, 7, 21, 43, 99)
Removing single element to the ListBuffer
ListBuffer: ListBuffer(4, 5, 1, 7, 21, 99)
Removing multiple element to the ListBuffer
ListBuffer: ListBuffer(5, 7, 21)

remove()方法可以从ListBuffer中删除单个和多个元素。使用其索引删除该元素。

语法:

    //用于从ListBuffer删除单个元素的语法, 
    ListBuffer.remove(index)
    //用于从ListBuffer删除多个元素的语法, 
    ListBuffer.remove(startindex , endindex)

程序使用remove()方法从ListBuffer删除元素

import scala.collection.mutable.ListBuffer

object MyObject {
    def main(args: Array[String]) {
        var listbuffer = ListBuffer(4, 5, 1, 7 ,21, 43, 99)
        println("ListBuffer: " + listbuffer)
        
        println("Removing single element to the ListBuffer")
        listbuffer.remove(4)
        println("ListBuffer: " + listbuffer)
        
        println("Removing multiple element to the ListBuffer")
        listbuffer.remove(1, 4)
        println("ListBuffer: " + listbuffer)
    }
}

输出:

ListBuffer: ListBuffer(4, 5, 1, 7, 21, 43, 99)
Removing single element to the ListBuffer
ListBuffer: ListBuffer(4, 5, 1, 7, 43, 99)
Removing multiple element to the ListBuffer
ListBuffer: ListBuffer(4, 99)