私はList.updatedについて興味があります。ランタイムは何ですか?そして、それはArrayBuffer内の1つの要素を変更することと比べてどうですか?バックグラウンドでは、リスト全体をどのようにコピーするのですか?これはO(n)手続きですか?もしそうなら、遅いことなく更新されたメソッドを持つ不変のデータ構造がありますか?Scala List.updated
例は:
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)
、それは多くの場合、[ソースコードAを見てください]に便利です(https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src//ライブラリ/スカラー/コレクション/ SeqLike.scala)。 –