Scala如何使用ListBuffer(详细代码解释)

列表是包含不可变数据的集合。List表示Scala中的链表。一个列表是不可变的,如果我们需要创建一个不断变化的列表,首选的方法是使用ListBuffer。
Scala List类保存一个有序的、线性的项列表。只有从后面到前面才能有效地建立一个列表。当我们想要从头到尾构建一个列表时,ListBuffer对象是很方便的。它支持有效的前置和附加操作。
创建完列表后,调用toList方法。要将ListBuffer转换为列表,所花费的时间将是常量。要使用ListBuffer,请使用scala.collection.mutable。导入ListBuffer类,创建ListBuffer的实例。
范例:

var name = new ListBuffer[datatype]()// empty buffer is createdvar name = new ListBuffer("class", "gfg", "lsbin")

【Scala如何使用ListBuffer(详细代码解释)】在上面的示例中, 首先, 在此处创建一个空缓冲区。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)

    推荐阅读