列表是相同数据类型的不可变数据的集合。在Scala中,该列表表示链接数据结构。
在Scala中创建新列表的语法,
val list_name = List(item1, item2, item3...)
在Scala中,我们可以将两个列表合并/合并为一个列表。这会将第二个列表附加在第一个列表的末尾。
在可变列表的情况下,您必须使用第三个变量来存储合并列表。否则,我们将不得不使用ListBufferClass(mutable lists)
将结果存储在同一变量中。
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#)