私は現在スカラーでインデックスで検索するのが最も速くなるコレクションタイプを探しています - つまり、x
が自分のコレクションであれば、インデックスi
を検索するのに、できるだけ速いパフォーマンスが必要です。また、実行時にx
を変更することはできません。 Scala Collections Performance Characteristicsで探しScala:変更可能なコレクションのインデックス作成は不変より速いですか?
、Oの最高のパフォーマンスを(1)JavaのArray
、mutable.ArrayBuffer
とmutable.ArraySeq
(String
とRange
は、私の場合には有用ではないとして)によって与えられているようです。これは驚くべきことです。不変なコレクションがより少ない機能をサポートするため、より高速になると期待していたからです。不変のコレクションによる最高のパフォーマンスは、Vector
とO(〜1)で与えられます。これは、私が理解する限り、O(1)と同じくらい良いです。
私はここで何かが見つからないのですか、または変更可能なコレクションが本当に良い検索パフォーマンスを持っていますか?
Scala 2.13には、不変の配列ラッパー、https://github.com/scala/collection-strawman/pull/6があります。 –