关于Java HashMap,我有两个问题:
1)在Java HashMap的任何实现中,是否可以从值中获取对应的键?我使用HashMultiMap (键-)多个值)。
2)在Java HashMap的任何实现中,有可能获得HashMap中的关键位置吗?如果是,那么如果我添加了新的key,是否会改变key的位置?我使用HashMultiMap (键-)多个值)。
如果这两个答案都不是,怎么可能手动实现(任何想法?)?
发布于 2012-03-12 08:45:21
1)可以,但不是以一种有效的方式,而且接口Map
中没有方法可以通过一个方法调用来实现这一点。您必须迭代映射的条目,直到找到一个具有您要查找的值的条目;然后您就有了相应条目的键。像Google Guava's BiMap
这样的实现确实可以让您高效地执行反向查找。
2)不是,因为map不是有序集合:key在map中没有定义的位置。如果需要,可以使用例如LinkedHashMap
,它保持键-值对在映射中的插入顺序。
https://stackoverflow.com/questions/9663884
复制相似问题