Ответ 1
Конкатенация неизменяемого вектора O (logN). Взгляните на эту статью, чтобы узнать, как это делается.
Scaladocs объясняют, как добавить элемент в вектор.
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)
Для большой коллекции кажется дорогостоящим копировать весь Вектор, а затем добавить к нему элемент.
Какой лучший (самый быстрый) способ добавить элемент в вектор?
Конкатенация неизменяемого вектора O (logN). Взгляните на эту статью, чтобы узнать, как это делается.
Если вы собираетесь делать много добавок, вы должны использовать очередь, так как это гарантирует постоянное добавление времени. Для получения информации о временной сложности коллекций вы можете обратиться к этому обману.
http://www.scala-lang.org/docu/files/collections-api/collections_40.html
Добавление к вектору в Scala занимает эффективное постоянное время. Вектор копируется в том смысле, что многие его структуры данных повторно используются, а не в том смысле, что все элементы копируются в новый вектор. См. Ссылку, предоставленную coltfred для получения дополнительной информации о временной сложности коллекций:
http://www.scala-lang.org/docu/files/collections-api/collections_40.html