3

Scalacollection.SortedMapとキーが与えられた場合、ソートされたマップに格納されているよりも大きいすべてのキー(またはさらに良いことにすべてのキーと値のペア)を取得する最も効率的な方法kは何ですか。返されるキーのセットは、キーの順序を保持する必要があります。もちろん、データ構造全体を熟読すること(つまり、を使用すること)を避け、マップがソートされているという事実を利用したいと思います。kfilterKeys

私は次のようなことをしたいと思います:

val m = collection.SortedMap((1,1) -> "somevalue", (1,2) -> "somevalue", 
  (1,3) -> "somevalue", (2,1) -> "somevalue", (3,1) -> "somevalue")
m.getKeysGreaterThan((2,1))
// res0: scala.collection.SortedSet[(Int, Int)] = TreeSet((2,1), (3,1))

より適切な地図のようなデータ構造が考えられる場合は、それを提案してください。

4

1 に答える 1

7

APIドキュメントからこれを試してください

m.from((2,1))

結果にはキー値が含まれることに注意してください。

Scala 2.10をチェックインし、をTreeMap.from呼び出します。これは効率的な実装のようです(ツリーベースのデータ構造の通常のO(log n))。fromRedBlackTree

于 2013-02-19T15:59:14.583 に答える