::: 和 ++ 在 Scala 中用於連線列表的區別

Suraj P 2023年1月30日
  1. Scala 中列表的串聯
  2. 在 Scala 中使用 ::: 連線列表
  3. 在 Scala 中使用 ++ 連線列表
::: 和 ++ 在 Scala 中用於連線列表的區別

在本教程中,我們將瞭解列表的:::++ 連線方法之間的區別。

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)

讓我們總結一下這兩個運算子之間的區別。

::: 運算子 ++ 運算子
只有列表可以使用此連線。 任何兩個集合都可以使用它連線,而不僅僅是列表。
++ 相比,它更快,因為它是右關聯的。 當用於連線列表時,它比 ::: 慢。
不是萬能的。 多才多藝,因為它可以連線任何兩個可迭代物件。
作者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub