我对Java HashMap有两个问题:
1)Java HashMap的任何实现都可以从值中获取相应的Key吗?我正在使用HashMultiMap(key - )多个值)。
2)在Java HashMap的任何实现中,是否可以在HashMap中获取Key位置?如果是,那么如果我添加新密钥,是否可能更改了密钥位置?我正在使用HashMultiMap(key - )多个值)。
如果他们两个都回答不是,那怎么可能手动实现(任何想法?)?
答案 0 :(得分:6)
1)是的,但不是以有效的方式,并且接口Map
中没有方法可以通过一个方法调用来完成此操作。您必须迭代地图的条目,直到找到具有您正在寻找的值的条目;那么你有相应条目的关键字。有Google Guava's BiMap
这样的实现可以让您有效地进行反向查找。
2)不,因为地图不是有序集合:键在地图中没有定义的位置。如果你需要这个,你可以使用例如LinkedHashMap
,它按照它们在地图中插入的顺序保存键值对。