Мне любопытно, что List.updated.Что это за время выполнения?И как это можно сравнить с простым изменением одного элемента в ArrayBuffer?На заднем плане, как это происходит с копированием всего списка?Это процедура O (n)?Если да, то есть ли неизменяемая структура данных с обновленным методом like, но не такая медленная?
Пример:
val list = List(1,2,3)
val list2 = list.updated(2, 5) --> # list2 = (1,5,3)
var abuf = ArrayBuffer(1,2,3)
abuf(2) = 5 --> # abuf = (1,5,3)