如何在Scala中合并列表?
列表是相同数据类型的不可变数据的集合。在Scala中,该列表表示链接数据结构。
在Scala中创建新列表的语法,
val list_name = List(item1, item2, item3...)
在Scala中合并列表
在Scala中,我们可以将两个列表合并/合并为一个列表。这会将第二个列表附加在第一个列表的末尾。
在可变列表的情况下,您必须使用第三个变量来存储合并列表。否则,我们将不得不使用ListBufferClass(mutablelists)将结果存储在同一变量中。
Scala编程语言提供了三种不同的方式来合并Scala中的列表,
使用++方法
使用:::方法
使用concat()方法
使用++方法合并两个列表
++方法用于连接两个列表。它将第二个列表追加到第一个列表的末尾。++方法也可以应用于ListBuffer类,即可变类。
语法:
val list3 = list1 ++ list2
程序使用++方法合并Scala中的两个不可变列表
object MyClass {
def main(args: Array[String]) {
val list1 = List("C", "C++", "Java")
val list2 = List("Scala", "Python", "C#")
println("list1: " + list1)
println("list2: " + list2)
println("合并list1和list2 ")
val list3 = list1 ++ list2
println("合并列表: " + list3)
}
}输出结果
list1: List(C, C++, Java) list2: List(Scala, Python, C#) 合并list1和list2 合并列表: List(C, C++, Java, Scala, Python, C#)
程序使用++方法合并Scala中的两个可变列表(ListBuffer)
import scala.collection.mutable.ListBuffer
object MyClass {
def main(args: Array[String]) {
var list1 = ListBuffer("C", "C++", "Java")
var list2 = ListBuffer("Scala", "Python", "C#")
println("list1: " + list1)
println("list2: " + list2)
println("合并list1和list2 ")
list2 = list1 ++ list2
println("合并列表: " + list2)
}
}输出结果
list1: ListBuffer(C, C++, Java) list2: ListBuffer(Scala, Python, C#) 合并list1和list2 合并列表: ListBuffer(C, C++, Java, Scala, Python, C#)
使用:::方法合并两个列表
:::方法还用于连接Scala中的两个列表。
语法:
val list3 = list1 + list2
程序使用++方法合并Scala中的两个不可变列表
object MyClass {
def main(args: Array[String]) {
val list1 = List("C", "C++", "Java")
val list2 = List("Scala", "Python", "C#")
println("list1: " + list1)
println("list2: " + list2)
println("合并list1和list2 ")
val list3 = list1::: list2
println("合并列表: " + list3)
}
}输出结果
list1: List(C, C++, Java) list2: List(Scala, Python, C#) 合并list1和list2 合并列表: List(C, C++, Java, Scala, Python, C#)
:::方法不能应用于ListBuffer类。
使用concat()方法合并两个列表
该concat()方法是List类,用于连接Scala中的两个列表。
语法:
val list3 = list.concat(list1, list2)
程序使用concat()方法在Scala中合并两个不可变列表
import scala.collection.mutable.ListBuffer
object MyClass {
def main(args: Array[String]) {
var list1 = ListBuffer("C", "C++", "Java")
var list2 = ListBuffer("Scala", "Python", "C#")
println("list1: " + list1)
println("list2: " + list2)
println("合并list1和list2 ")
val list3 = List.concat(list1, list2)
println("合并列表: " + list3)
}
}输出结果
list1: ListBuffer(C, C++, Java) list2: ListBuffer(Scala, Python, C#) 合并list1和list2 合并列表: List(C, C++, Java, Scala, Python, C#)