我有两个关于 Java HashMap 的问题:
1) 是否有可能在 Java HashMap 的任何实现中从值中获取相应的键?我正在使用 HashMultiMap (key -) 多个值)。
2) 是否有可能在 Java HashMap 的任何实现中获得 HashMap 中的 Key 位置?如果是这样,那么如果我添加新 key ,是否有可能更改 key 位置?我正在使用 HashMultiMap (key -) 多个值)。
如果他们两个的答案都不是,怎么可能手动实现(知道吗?)?
最佳答案
1) 是的,但不是一种有效的方式,并且接口(interface) Map
中没有方法可以通过一次方法调用来完成此操作。您必须遍历 map 的条目,直到找到具有您要查找的值的条目;然后你有相应条目的 key 。有实现,如 Google Guava's BiMap
让您可以高效地进行反向查找。
2) 不,因为映射不是有序集合:键在映射中没有定义的位置。如果您需要这个,您可以使用例如 LinkedHashMap
,它按照键值对在 map 中插入的顺序保存键值对。
关于java - 哈希多映射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663884/