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

2021年3月18日15:20:16 发表评论 1,017 次浏览

列表是包含不可变数据的集合。List表示Scala中的链表。一个列表是不可变的,如果我们需要创建一个不断变化的列表,首选的方法是使用ListBuffer。

Scala List类保存一个有序的、线性的项列表。只有从后面到前面才能有效地建立一个列表。当我们想要从头到尾构建一个列表时,ListBuffer对象是很方便的。它支持有效的前置和附加操作。

创建完列表后,调用toList方法。要将ListBuffer转换为列表,所花费的时间将是常量。要使用ListBuffer,请使用scala.collection.mutable。导入ListBuffer类,创建ListBuffer的实例。

范例:

var name = new ListBuffer[datatype]()  // empty buffer is created

var name = new ListBuffer("class", "gfg", "lsbin")

在上面的示例中, 首先, 在此处创建一个空缓冲区。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)

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: