散列多地图问题

时间:2012-03-12 08:39:03

标签: java hashmap

我对Java HashMap有两个问题:

1)Java HashMap的任何实现都可以从值中获取相应的Key吗?我正在使用HashMultiMap(key - )多个值)。

2)在Java HashMap的任何实现中,是否可以在HashMap中获取Key位置?如果是,那么如果我添加新密钥,是否可能更改了密钥位置?我正在使用HashMultiMap(key - )多个值)。

如果他们两个都回答不是,那怎么可能手动实现(任何想法?)?

1 个答案:

答案 0 :(得分:6)

1)是的,但不是以有效的方式,并且接口Map中没有方法可以通过一个方法调用来完成此操作。您必须迭代地图的条目,直到找到具有您正在寻找的值的条目;那么你有相应条目的关键字。有Google Guava's BiMap这样的实现可以让您有效地进行反向查找。

2)不,因为地图不是有序集合:键在地图中没有定义的位置。如果你需要这个,你可以使用例如LinkedHashMap,它按照它们在地图中插入的顺序保存键值对。