列表是相同数据类型的不可变元素的集合。在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中的元素的索引值来访问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
可以在同一ListBuffer中添加新元素。有几种方法可用于将元素添加到ListBuffer。他们是,
使用+ =运算符
使用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)
在ListBuffer中,您可以删除元素。有几种从ListBuffer删除元素的方法。他们是
使用-=运算符
使用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)