::: 和 ++ 在 Scala 中用于连接列表的区别

Suraj P 2023年1月30日 2022年5月18日
  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)

让我们总结一下这两个运算符之间的区别。

::: 运算符 ++ 运算符
只有列表可以使用此连接。 任何两个集合都可以使用它连接,而不仅仅是列表。
++ 相比,它更快,因为它是右关联的。 当用于连接列表时,它比 ::: 慢。
不是万能的。 多才多艺,因为它可以连接任何两个可迭代对象。
Author: 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