如果我有HashMap<KEY, VALUE>
并且我需要快速查找键的值除了创建存储相同数据的第二个HashMap<VALUE, KEY>
之外还有其他方法吗?但是使用该值作为关键字?
关于这个有什么办法吗?如果它有所作为,我的兴趣是String
作为关键和价值
注意:我使用的是Java 7
更新
我不确定为什么另一个问题是重复的,因为我要求一个具体的方法来实现这个
除非唯一/最佳方式是双向地图,否则我无法理解为什么这是重复的
答案 0 :(得分:1)
简短回答:不,没有。
您需要两张地图。如果要对两者使用O(1)时间,则表示两个哈希映射。
如果您担心太空,请不要太担心:您只是存储重复的指针,而不是两个字符串。
即,您只是存储
HashMap<String* k, String* v> normal;
HashMap<String* k, String* v> inverse;
而不是整个字符串。 (尽管Java中不存在指针。)