Scaladocs解释如何将元素添加到Vector。
def :+(elem: A): Vector[A]
[use case] A copy of this vector with an element appended.
示例:
scala> Vector(1,2) :+ 3
res12: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3)
对于大型集合,复制整个Vector,然后向其添加元素似乎很昂贵。
向Vector添加元素的最佳(最快)方法是什么?
答案 0 :(得分:9)
与不可变Vector的连接是O(logN)。看看这篇论文,看看它是如何完成的。
答案 1 :(得分:6)
如果你要做很多追加,你应该使用一个Queue,因为它可以保证不断添加时间。有关集合的时间复杂性的信息,您可以参考此备忘单。
http://www.scala-lang.org/docu/files/collections-api/collections_40.html
答案 2 :(得分:2)
在Scala中追加向量需要有效的恒定时间。在复制许多数据结构的意义上复制向量,而不是将所有元素复制到新向量中。有关集合的时间复杂性的更多信息,请参阅coltfred提供的链接:
http://www.scala-lang.org/docu/files/collections-api/collections_40.html