java - 哈希多映射问题

标签 java hashmap

我有两个关于 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/

相关文章:

java - 我有一套配料。我需要在 Java 中检索包含这些成分的所有食谱

java - 基于 java 中的变量值按类构造函数结果分组

java - HashMap replace 和 put 的区别

java - Object[] 声明中的 IndexOutOfBoundsException

java - 将不同的 xml 转换为另一个 xml

java - Spring Boot Web 应用程序如何验证另一个字段所需条件的表单字段?

java - 属性值的组合

java - 在java中,如何创建一个根据以前的方法对对象进行分类的方法?

java - 有没有办法在 ESP32 上使用 JMS(java 消息服务)?

java - 如何通过 JNI 创建 HashMap<String, String> 然后解析为 java