Xio*_*345 3 scala scala-collections
给定一个Scala collection.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))
Run Code Online (Sandbox Code Playgroud)
如果您能想到更合适的类似地图的数据结构,请提出建议.
m.from((2,1))
Run Code Online (Sandbox Code Playgroud)
请注意,结果包含键值.
我刚刚检查了Scala 2.10,TreeMap.from调用from了RedBlackTree,这看起来是一个有效的实现(通常是基于树的数据结构的O(log n)).
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |