如何在Scala中将元素添加到列表中?
在Scala中,列表是不可变的数据结构,其中不允许添加新元素。因此,在这里我们将解决通常在函数式编程范例中完成的问题。
要将元素添加到列表中,有两种方法:
1)将元素添加到Scala列表
由于添加新元素时列表是不可变的,因此我们将元素添加到新列表中。
使用以下运算符完成,
前置运算符(::)
追加运算符+:
程序:
object MyClass {
def main(args: Array[String]) {
var progLang = List("Java", "Scala")
println("编程语言: " + progLang)
println("Prepending elements to list")
progLang = "C++" :: progLang
println("编程语言: " + progLang)
println("Appending elements to list")
progLang = progLang :+ "Python"
println("编程语言: " + progLang)
}
}输出结果
编程语言: List(Java, Scala)Prepending elements to list 编程语言: List(C++, Java, Scala) Appending elements to list 编程语言: List(C++, Java, Scala, Python)
2)使用ListBuffer
ListBuffer是具有列表特性的可变列表,但是可以从列表中添加或删除元素。
程序:
import scala.collection.mutable.ListBuffer
object MyClass {
def main(args: Array[String]) {
var progLang = ListBuffer("Java", "Scala")
println("编程语言:" + progLang)
println("Adding New elments to ListBuffer")
progLang += "C++"
println("编程语言:" + progLang)
}
}输出结果
编程语言:ListBuffer(Java, Scala)Adding New elments to ListBuffer 编程语言:ListBuffer(Java, Scala, C++)
如果需要使用list的某些特征,可以将此ListBuffer转换为List:
val listName = listBufferName.toList
在Scala中创建空的ListBiffer
您还可以仅通过提及其数据类型来创建一个空的ListBuffer。
语法:
var listBufferName = new ListBuffer[dataType]()
程序:
import scala.collection.mutable.ListBuffer
object MyClass {
def main(args: Array[String]) {
var progLang = ListBuffer[String]()
println("编程语言:" + progLang)
println("Adding New elments to ListBuffer")
progLang += "C++"
progLang += "Java"
progLang += "Scala"
println("编程语言:" + progLang)
}
}输出结果
编程语言:ListBuffer()Adding New elments to ListBuffer 编程语言:ListBuffer(C++, Java, Scala)