假设我在Java中有一个地图,如下所示:
{
39:"39 to 41",
41:"41 to 43",
43:"43 to 45",
45:">=45"
}
Run Code Online (Sandbox Code Playgroud)
如果键是按排序顺序(使用treemap或linkedhashmap).现在,如果我尝试获得> = 39且<41的值.那么我应该得到字符串"39到41".如何有效地执行此操作?
我试图找到一个数据结构,从一系列值中获取特定值并将其映射到一个键.
例如,我有以下条件:
我的值为5,我想将其映射到一个键.所以基于上述条件,我应该将它映射到B.
Java中是否有任何人可以向我推荐解决问题的数据结构?
目前我使用的哈希表只能将值映射到键.我尝试将值范围映射到哈希表中存在的特定值.但是,我陷入了将值范围映射到特定值的问题.所以现在我试图用另一种方法将值的范围映射到键.有谁知道如何解决这个问题?
编辑:
感谢Martin Ellis,我决定使用TreeMap来解决这个问题.
我有几乎相同的数据结构中提到的问题,可以将一系列键映射到值,但对于Scala.
也就是说,我希望有一个非重叠的1D范围[a [i],b [i])的可变系统,它将映射到某种值v [i].执行此类工作的标准基础数据结构是红黑树.
我希望它拥有的操作,最好是所有操作都应该具有O(log n)的复杂度:
所以,我想到目前为止,我看到以下变种,所有这些都有其缺点:
floorEntry
我在这里错过了什么吗?是否存在使用Scala中心API扩展基本Scala集合的类似Guava的维护良好的集合扩展库?
强烈相关的问题: