::: 和 ++ 在 Scala 中用於連線列表的區別
Suraj P
2023年1月30日
在本教程中,我們將瞭解列表的:::
和++
連線方法之間的區別。
Scala 中列表的串聯
在 Scala 中,列表是用於以連結串列形式儲存資料的集合。
例子:
val names: List[String] = List("Tony", "Stark", "Hulk")
Scala 中有兩種連線列表的方法。 ++
和 :::
運算子。
在 Scala 中使用 :::
連線列表
:::
運算子只能用於連線列表。在計算方面,使用 :::
運算子更快,因為它是右關聯的。
語法:
val finalList = list1 ::: list2 ::: list3 ::: list4.........
例子:
object MyClass {
def main(args: Array[String]):Unit= {
val list1 = List("Tony", "Stark", "Hulk")
val list2 = List("Iron Man", "Bruce Banner")
val list3 = List(1,2,3,"a","b")
val list4 = list1 ::: list2 ::: list3
println(list4)
}
}
輸出:
List(Tony, Stark, Hulk, Iron Man, Bruce Banner, 1, 2, 3, a, b)
在 Scala 中使用 ++
連線列表
++
運算子連線任意兩個集合,而不僅僅是列表。這種方法非常通用,因為它可以與任何兩個集合一起使用。
語法:
val finalList = list1 ++ list2 ++ list3 ++ list4.........
示例 1:
object MyClass {
def main(args: Array[String]):Unit= {
val list1 = List("Tony", "Stark", "Hulk")
val list2 = List("Iron Man", "Bruce Banner")
val list3 = List(1,2,3,"a","b")
val list4 = list1 ++ list2 ++ list3
println(list4)
}
}
輸出:
List(Tony, Stark, Hulk, Iron Man, Bruce Banner, 1, 2, 3, a, b)
示例 2:
object MyClass {
def main(args: Array[String]):Unit= {
val seq1 = Seq(1,3,5,7,9)
val seq2 = Seq(2,4,6,8)
val seq3 = seq1 ++ seq2
println(seq3)
}
}
輸出:
List(1, 3, 5, 7, 9, 2, 4, 6, 8)
讓我們總結一下這兩個運算子之間的區別。
::: 運算子 |
++ 運算子 |
---|---|
只有列表可以使用此連線。 | 任何兩個集合都可以使用它連線,而不僅僅是列表。 |
與++ 相比,它更快,因為它是右關聯的。 |
當用於連線列表時,它比 ::: 慢。 |
不是萬能的。 | 多才多藝,因為它可以連線任何兩個可迭代物件。 |