Scala ListBuffer –创建可变列表
Scala列表
列表是相同数据类型的不可变元素的集合。在scala中,该列表表示一个链接列表。
您无法更新列表,因为它是不可变的,因此对于添加,更新,删除等功能,我们需要创建一个可变的列表,该列表是使用ListBuffer完成的。
ScalaListBuffer
ListBuffer是不可变的特殊列表类型,即可以更新ListBuffer。
在Scala中创建一个空的ListBuffer的语法,
var ListBuffer_name = new ListBuffer[datatype]()
使用Scala中的元素创建ListBuffer的语法,
var ListBuffer_name = new ListBuffer(element1, element2, element3...)
为了在Scala中创建ListBuffer,我们需要使用以下语句将ListBuffer类导入到程序中:
import scala.collection.mutable.ListBuffer
ListBuffer操作
我们可以执行更新操作,例如在ListBuffer中添加和删除元素。
1)访问ListBuffer的元素
我们可以使用使用ListBuffer中的元素的索引值来访问ListBuffer中的任何元素,就像访问列表中的元素一样。
用于访问ListBuffer的第i个元素的语法,
listBuffer(i)
程序访问ListBuffer的元素
import scala.collection.mutable.ListBuffer object MyObject { def main(args: Array[String]) { var city = ListBuffer("Delhi" , "Mumbai" , "Indore" , "Pune") println("进入ListBuffer的第二个元素: " + city(1)) println("进入ListBuffer的第三个元素: " + city(2)) } }
输出:
进入ListBuffer的第二个元素: Mumbai 进入ListBuffer的第三个元素: Indore
2)将元素添加到ListBuffer
可以在同一ListBuffer中添加新元素。有几种方法可用于将元素添加到ListBuffer。他们是,
使用+=运算符
使用append()
方法
语法:
//将单个元素添加到ListBuffer的语法, ListBuffer += element //将多个元素添加到ListBuffer的语法, ListBuffer += (element1, element2, element3, ...)
注意:以上两种语法都用于append()
ListBuffer的元素,即元素将添加到ListBuffer的末尾。但是您也可以在Scala中添加列表,即使用以下语法在ListBuffer的开头添加元素,
element +=: ListBuffer
使用+=运算符将元素添加到ListBuffer的程序
import scala.collection.mutable.ListBuffer object MyObject { def main(args: Array[String]) { var bikes = ListBuffer[String]() println("空的ListBuffer: " + bikes) println("Adding a single element to the ListBuffer") bikes += "ThunderBird 350" println("ListBuffer: " + bikes) println("Adding multiple element to the listBuffer") bikes += ( "Iron 833", "S1000RR" ) println("ListBuffer: " + bikes) println("Adding elements at the start of the ListBuffer") ("Pulsar 150") +=: bikes println("ListBuffer: " + bikes) } }
输出:
空的ListBuffer: ListBuffer()Adding a single element to the ListBuffer ListBuffer: ListBuffer(ThunderBird 350) Adding multiple element to the listBuffer ListBuffer: ListBuffer(ThunderBird 350, Iron 833, S1000RR) Adding elements at the start of the ListBuffer ListBuffer: ListBuffer(Pulsar 150, ThunderBird 350, Iron 833, S1000RR)
该append()
方法用于在ListBuffer的末尾添加元素。
语法:
ListBuffer.append(element1, element2, element3...)
使用append()
方法将元素添加到ListBuffer的程序
import scala.collection.mutable.ListBuffer object MyObject { def main(args: Array[String]) { var lang = ListBuffer[String]() println("空的ListBuffer: " + lang) println("Adding a single element to the ListBuffer") lang.append("C") println("ListBuffer: " + lang) println("Adding multiple element to the listBuffer") lang.append( "C++", "Scala" , "Python" ) println("ListBuffer: " + lang) } }
输出:
空的ListBuffer: ListBuffer()Adding a single element to the ListBuffer ListBuffer: ListBuffer(C)Adding multiple element to the listBuffer ListBuffer: ListBuffer(C, C++, Scala, Python)
3)从ListBuffer删除元素
在ListBuffer中,您可以删除元素。有几种从ListBuffer删除元素的方法。他们是
使用-=运算符
使用remove()
方法
我们可以使用-=运算符删除单个或多个元素。
语法:
//从ListBuffer删除单个元素, ListBuffer -= element //从ListBuffer删除多个元素, ListBuffer -= (element1, element2, element3, ...)
程序使用-=方法从ListBuffer删除元素
import scala.collection.mutable.ListBuffer object MyObject { def main(args: Array[String]) { var listbuffer = ListBuffer(4, 5, 1, 7 ,21, 43, 99) println("ListBuffer: " + listbuffer) println("Removing single element to the ListBuffer") listbuffer -= 43 println("ListBuffer: " + listbuffer) println("Removing multiple element to the ListBuffer") listbuffer -= (4, 99, 1) println("ListBuffer: " + listbuffer) } }
输出:
ListBuffer: ListBuffer(4, 5, 1, 7, 21, 43, 99) Removing single element to the ListBuffer ListBuffer: ListBuffer(4, 5, 1, 7, 21, 99) Removing multiple element to the ListBuffer ListBuffer: ListBuffer(5, 7, 21)
该remove()
方法可以从ListBuffer中删除单个和多个元素。使用其索引删除该元素。
语法:
//用于从ListBuffer删除单个元素的语法, ListBuffer.remove(index) //用于从ListBuffer删除多个元素的语法, ListBuffer.remove(startindex , endindex)
程序使用remove()
方法从ListBuffer删除元素
import scala.collection.mutable.ListBuffer object MyObject { def main(args: Array[String]) { var listbuffer = ListBuffer(4, 5, 1, 7 ,21, 43, 99) println("ListBuffer: " + listbuffer) println("Removing single element to the ListBuffer") listbuffer.remove(4) println("ListBuffer: " + listbuffer) println("Removing multiple element to the ListBuffer") listbuffer.remove(1, 4) println("ListBuffer: " + listbuffer) } }
输出:
ListBuffer: ListBuffer(4, 5, 1, 7, 21, 43, 99) Removing single element to the ListBuffer ListBuffer: ListBuffer(4, 5, 1, 7, 43, 99) Removing multiple element to the ListBuffer ListBuffer: ListBuffer(4, 99)