如何在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)