3

给定一个 Scalacollection.SortedMap和一个 key ,让所有键(甚至更好,所有键值对)大于存储在排序映射中的最有效方法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调用fromon RedBlackTree,这似乎是一个有效的实现(基于树的数据结构的通常 O(log n) )。

于 2013-02-19T15:59:14.583 回答