Scala ListBuffer
列表是一个包含不可变数据的集合。List在Scala中代表链接列表。List是不可变的,如果我们需要创建一个不断变化的列表,首选的方法是使用 ListBuffer。
Scala List类持有一个有顺序的、线性的项目列表。List只能从后往前有效地建立起来。当我们想从前往后建立一个列表时,ListBuffer对象很方便。它支持高效的premend和append操作。
一旦我们完成了列表的创建,就调用toList方法。将ListBuffer转换为List,所花费的时间将是恒定的。要使用ListBuffer,需要导入 scala.collection.mutable.ListBuffer 类,创建一个ListBuffer的实例。
例子。
var name = new ListBuffer[datatype]() // empty buffer is created
var name = new ListBuffer("class", "gfg", "geeksforgeeks")
在上面的例子中,首先创建了一个空的缓冲区,这里的datatype表示数据的类型,如整数、字符串。然后创建一个有三个元素的缓冲区,类型为字符串。
下面的操作可以在ListBuffer上进行:
- 通过使用 L += e ,我们可以在恒定时间内追加元素e。
- 通过使用 e +=:L ,我们可以在恒定的时间内对元素e进行预置。
- L.toList 在恒定时间内,它返回一个包含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 += "GeeksForGeeks"
name += "gfg"
name += "Class"
println(name)
}
}
输出
ListBuffer(GeeksForGeeks, gfg, Class)
从ListBuffer访问元素
元素的访问与列表相同,ListBuffer(i)被用来访问列表中的第i个 索引元素。
// 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 += "GeeksForGeeks"
name += "gfg"
name += "Class"
// Accessing 1th index element of listBuffer
println(name(1))
}
}
输出
gfg
在ListBuffer中添加元素
- 向缓冲区添加单个元素
ListBuffer+=( element)
- 添加两个或多个元素(方法有一个varargs参数)。
ListBuffer+= (element1, 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 += "GeeksForGeeks"
// 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(GeeksForGeeks, gfg, class, Scala, Article)
删除ListBuffer元素
- 删除一个元素
ListBuffer-= (element)
- 删除多个元素
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( "GeeksForGeeks", "gfg",
"class", "Scala",
"Article" )
// Deletes one element
name -= "GeeksForGeeks"
// Deletes two or more elements
name -= ("gfg", "class")
// Printing resultant ListBuffer
println(name)
}
}
输出
ListBuffer(Scala, Article)
使用ListBuffer.remove()删除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( "GeeksForGeeks",
"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)