【发布时间】:2011-06-30 00:00:39
【问题描述】:
我希望从只有一个对应键的 Java 键/值对(具有一对多映射的映射)中检索值,而不需要遍历映射中的所有值并将其转换为 O(n) 复杂性。
Key/Value 数据结构如下:
K1 --> V1, V2
K2 --> V1、V2、V3
K3 --> V1
K4 -->
K5 --> V4、V2
如果有人对此有任何建议,或者如果可以在时间复杂性方面做得更好,将不胜感激。
【问题讨论】:
-
您是说您有一个键/值对,其中值已知但键不知道,并且您想使用该值来查找键?
-
第二个问题:“只有一个对应的key”是否意味着这个Map结构保证key和value之间是1对1的映射?也就是说,与地图中的所有其他值相比,每个值都是唯一的?
-
来自
TreeMap的containsValue的文档:This operation will probably require time linear in the map size for most implementations.所以它假设线性只是为了首先找出地图是否甚至包含该值,别管其他保证或返回密钥。 -
@Loduwijk:键和值都是已知的。它是一对多映射。已更新帖子。 @Gnon:它会试图找到一种获得结果的最佳方法。
标签: java algorithm data-structures map time-complexity