java - 如何实现多对一映射的数据结构?

标签 java data-structures dictionary many-to-one

我想要反向映射,这意味着我有很多键而只有一个值。我需要这个结构,所以当我搜索其中一个键时,我得到了值。

enter image description here

我可以使用一个简单的 Hash Map,但它会因为多次存储值而浪费空间。我正在寻找 java 中的优化和高效实现。感谢您的建议。

最佳答案

应该使用HashMap。当您将“布”作为值放入 HashMap 时,它不会在内存中重复。只是将引用写入到 HashMap 中。

String hat = "hat";
String dress = "dress";
String paths = "paths";
String scarf = "scarf";
String cloth = "cloth";
HashMap h = new HashMap();
h.put(hat,cloth);
h.put(paths,cloth);
h.put(dress,cloth);
h.put(scarf,cloth);

对于这个示例,内存只保留布料对象一次。

关于java - 如何实现多对一映射的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27192608/

相关文章:

javascript - 为什么在此代码中计数已减少?

python - 字典变量如何存储在内存中?

java - 在我们的工作环境中使用 GIT 的最佳方式是什么?

java - Eclipse/maven - “无法将项目方面 EAR 的版本更改为 6.0

c# - 双向链表到 JSON

java - LinkedList,队列与列表的区别

java - 如何在Java中包含字符串值和整数键的映射中搜索部分 "value"?

python - 添加具有相同键的值

java - 在一个包含 27 个字符串的数组中创建一个包含 9 个唯一字符串的新数组

java - 从纯 Java 生成 jOOQ 类