Scala: как лучше всего добавить элемент в массив?

Скажи у меня естьArray[Int] любить

val array = Array( 1, 2, 3 )

Теперь я хотел бы добавить элемент в массив, скажем, значение4, как в следующем примере:

val array2 = array + 4     // will not compile

Я могу конечно использоватьSystem.arraycopy() и делаю это самостоятельно, но для этого должна быть библиотечная функция Scala, которую я просто не смог найти. Спасибо за любые указатели!

Примечания:

Я знаю, что могу добавить еще один массив элементов, как показано в следующей строке, но это кажется слишком округлым:

val array2b = array ++ Array( 4 )     // this works

Я знаю о преимуществах и недостатках List vs Array, и здесь я по разным причинам особенно заинтересован в расширении Array.

Редактировать 1

Спасибо за ответы, указывающие на:+ операторный метод. Это то, что я искал. К сожалению, это немного медленнее, чем реализация пользовательского метода append (), использующегоarraycopy - примерно в два-три раза медленнее. Глядя на реализацию вSeqLike[]создается построитель, затем к нему добавляется массив, затем добавление выполняется через построитель, а затем создается построитель. Не очень хорошая реализация для массивов. Я сделал быстрый тест, сравнивая два метода, глядя на самое быстрое время из десяти циклов. Выполнение 10 миллионов повторений одного элемента добавляет к экземпляру массива из 8 элементов некоторого классаFoo занимает 3,1 с:+ и 1,7 сек с простымappend() метод, который используетSystem.arraycopy(); выполнение 10 миллионов повторений добавления одного элемента на массивах из 8 элементов Long занимает 2,1 с:+ и 0,78 сек с простымappend() метод. Интересно, если это не может быть исправлено в библиотеке с пользовательской реализацией дляArray?

Редактировать 2

На что это стоит, я подал заявку:https://issues.scala-lang.org/browse/SI-5017

Ответы на вопрос(1)

Ваш ответ на вопрос