Scala ListBuffer

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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程