在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)
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
您还可以仅通过提及其数据类型来创建一个空的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)