📜  斯卡拉列表缓冲区

📅  最后修改于: 2022-05-13 01:54:23.304000             🧑  作者: Mango

斯卡拉列表缓冲区

列表是包含不可变数据的集合。 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 中添加元素:

ListBuffer+=( element)

输出:

ListBuffer+= (element1, element2, ..., elementN )


删除 ListBuffer 元素:

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)