Scalaでキーを効率的に検索する方法を知っていますか? は、私が地図を持って想像:Scalaでキーを効率的に検索する方法は、順序付けられたマップで知ることができますか?
val unorderdMap: Map[Int, String] = ...
val orederedMap: Map[Int, String] = unorderedMap.sort
はorderedMapで高速化キーのルックアップ操作ですか?
unorderedMap.get(i) //Slower???
orderedMap.get(i) //Faster???
効率的に検索する方法をコンパイラが知っていますか?
コンパイラは、それぞれの場合で異なる検索操作を実行しますか?
* EDIT: 私は が、それは次のようにそれから地図を作るために、より良いです(これは私は興味を持って何が)キーで高速検索操作を持ちたい
case class A(key: Int, value1: String, value2: String, ...)
val SeqA: Seq[A] = Seq(A(1, "One", "Uno", ...), A(2, "Two", "Duo",...), ..., A(20000,... ,...))
あります
をval mapA = SeqA.map(a => a.key -> a)(collection.breakOut)
または、それをシーケンスとして残しておく方がいいですか? それから私はそれを注文する必要がありますマップを作るかどうか? *エレメントは約 です。20K〜30Kエレメント!
「ソートムーソウ」とは何ですか? – Dima
同じマップですが、ソートされました! – Spartan
技術的には実際に使用されている実装に依存します(Mapはインタフェースであり、サンプルはマップの作成方法を指定せず、Mapには 'sort'メソッドがありません)。しかし、スカラのデフォルト(HashMapとSortedMap)を使用していると仮定すると、MichelLemayの答えは正しいです。 @Spartan; –