列表是包含不可变数据的集合。List表示Scala中的链表。一个列表是不可变的,如果我们需要创建一个不断变化的列表,首选的方法是使用ListBuffer。
Scala List类保存一个有序的、线性的项列表。只有从后面到前面才能有效地建立一个列表。当我们想要从头到尾构建一个列表时,ListBuffer对象是很方便的。它支持有效的前置和附加操作。
创建完列表后,调用toList方法。要将ListBuffer转换为列表,所花费的时间将是常量。要使用ListBuffer,请使用scala.collection.mutable。导入ListBuffer类,创建ListBuffer的实例。
范例:
var name = new ListBuffer[datatype]() // empty buffer is created
var name = new ListBuffer("class", "gfg", "lsbin")
在上面的示例中, 首先, 在此处创建一个空缓冲区。datatype指示数据类型, 例如整数, 字符串。然后创建一个具有三个元素(类型为string)的缓冲区。
可以在ListBuffer上执行以下操作–
- 通过使用L + = e我们可以在固定时间内追加元素e。
- 通过使用e + =:L我们可以在恒定时间内添加元素e。
- 列表在恒定时间内, 它返回一个包含ListBuffer内容的列表。一旦将ListBuffer更改为列表, 就不应使用ListBuffer。
ListBuffer上的操作
创建ListBuffer的实例:
// Scala program to create a ListBuffer
// ListBuffer class is imported
import scala.collection.mutable.ListBuffer
// Creating object
object GfG
{
// Main Method
def main(args : Array[String])
{
// Instance of ListBuffer is created
var name = ListBuffer[String]()
name + = "lsbin"
name + = "gfg"
name + = "Class"
println(name)
}
}
输出如下:
ListBuffer(lsbin, gfg, Class)
来自ListBuffer的访问元素:
元素的访问与列表相同, ListBuffer(i)用于访问一世th列表的索引元素。
// Scala program to access element of ListBuffer
// ListBuffer class is imported
import scala.collection.mutable.ListBuffer
// Creating Object
object GFG
{
// Main Method
def main(args : Array[String])
{
// Instance of ListBuffer is created
var name = ListBuffer[String]()
name + = "lsbin"
name + = "gfg"
name + = "Class"
// Accessing 1th index element of listBuffer
println(name( 1 ))
}
}
输出如下:
gfg
在ListBuffer中添加元素:
将单个元素添加到缓冲区ListBuffer + =(element)添加两个或多个元素(方法具有varargs参数)ListBuffer + =(元素1, element2, ..., elementN)追加一个或多个元素(使用varargs参数)ListBuffer.append (elem1, elem2, ... elemN)
// Scala program to add element in ListBuffer
// ListBuffer class is imported
import scala.collection.mutable.ListBuffer
// Creating Object
object GFG
{
// Main Method
def main(args : Array[String])
{
// Instance of ListBuffer is created
var name = ListBuffer[String]()
// Adding one element
name + = "lsbin"
// Add two or more elements
name + = ( "gfg" , "class" )
// Adding one or more element using append method
name.append( "Scala" , "Article" )
// Printing ListBuffer
println(name)
}
}
输出如下:
ListBuffer(lsbin, gfg, class, Scala, Article)
删除ListBuffer元素:
删除一个元素ListBuffer-=(元素)删除多个元素ListBuffer-=(elem1, elem2, ....., elemN)
// Scala program to delete element from ListBuffer
// ListBuffer class is imported
import scala.collection.mutable.ListBuffer
// Creating Object
object GFG
{
// Main Method
def main(args : Array[String])
{
// Instance of ListBuffer is created
var name = ListBuffer( "lsbin" , "gfg" , "class" , "Scala" , "Article" )
// Deletes one element
name - = "lsbin"
// Deletes two or more elements
name - = ( "gfg" , "class" )
// Printing resultant ListBuffer
println(name)
}
}
输出如下:
ListBuffer(Scala, Article)
使用以下方法删除ListBuffer元素
ListBuffer.remove()
:
的去掉()方法用于删除一个元素在元素中的位置ListBuffer, 或从起始位置开始的一系列元素。
// Scala program for remove method, on ListBuffer
// ListBuffer class is imported
import scala.collection.mutable.ListBuffer
// Creating Object
object GFG
{
// Main Method
def main(args : Array[String])
{
// Instance of ListBuffer is created
var name = ListBuffer( "lsbin" , "gfg" , "class" , "Scala" , "Article" )
// Removing 0th index element
name.remove( 0 )
// Printing resultant ListBuffer
println(name)
name.remove( 1 , 3 )
// Printing resultant ListBuffer
println(name)
}
}
输出如下:
ListBuffer(gfg, class, Scala, Article)
ListBuffer(gfg)