斯卡拉列表缓冲区
列表是包含不可变数据的集合。 List 表示 Scala 中的链表。 List 是不可变的,如果我们需要创建一个不断变化的列表,首选的方法是使用ListBuffer 。
Scala List 类包含一个有序的线性项目列表。 List 只能从后到前有效地构建。当我们想要从前到后构建列表时, ListBuffer对象很方便。它支持高效的前置和附加操作。
完成创建列表后,调用toList
方法。要将 ListBuffer 转换为 List,所用时间将是恒定的。要使用 ListBuffer,需要导入scala.collection.mutable.ListBuffer class
,并创建 ListBuffer 的实例。
例子 :
var name = new ListBuffer[datatype]() // empty buffer is created
var name = new ListBuffer("class", "gfg", "geeksforgeeks")
在上面的例子中,首先在这里创建了一个空缓冲区,datatype 表示数据的类型,例如 integer、 字符串。然后创建了一个包含三个元素的缓冲区,类型为字符串。
可以在 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 中添加元素:
- Add single element to the buffer
- Add two or more elements (method has a varargs parameter)
- Append one or more elements (uses a varargs parameter)
ListBuffer+=( element)
输出:
ListBuffer+= (element1, element2, ..., elementN )
删除 ListBuffer 元素:
- Remove one element
- Remove multiple elements
ListBuffer-= (elem1, elem2, ....., elemN)
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.remove()
删除 ListBuffer 元素:
remove()
方法用于按其在ListBuffer
中的位置删除一个元素,或从起始位置开始的一系列元素。
ListBuffer(GeeksForGeeks, gfg, class, Scala, Article)
输出:
ListBuffer-= (element)