5

次のシナリオで、可変または不変の最高のScalaコレクション(2.8以降)は何でしょうか。

  • 順番に並べられているので、位置ごとにアイテムにアクセスできます(Seq)
  • アイテムを頻繁に挿入する必要があるため、コレクションはあまりペナルティなしで成長できる必要があります
  • ランダムアクセス。コレクション内の任意のインデックスにあるアイテムを頻繁に削除および挿入する必要があります

現在、可変ArrayBufferで良好なパフォーマンスが得られているようですが、もっと良いものはありますか?同様に機能する不変の代替手段はありますか?前もって感謝します。

4

3 に答える 3

4

アクセス回数が log(N)/N を超えるランダムな位置にアイテムを挿入する場合はimmutable.TreeSet、すべての操作が O(log(N)) であるため、おそらく使用する必要があります。あなたが主に(遠い)端にアクセスしたり追加したりして、ArrayBufferうまくVectorいくなら。

于 2010-08-21T13:36:19.483 に答える
4

可変:ArrayBuffer
不変:Vector

于 2010-08-21T06:40:12.760 に答える
2

Vector. IndSeqfrom scalazはさらに良くなるはずです。

于 2010-08-21T07:24:29.580 に答える