如何实现多对一的数据结构?

时间:2014-11-28 16:19:16

标签: java data-structures map many-to-one

我希望反向绘制地图,这意味着我有很多按键,只有一个值。我需要这个结构,所以当我搜索其中一个键时,我得到了值。

enter image description here

我可以使用简单的哈希映射但由于多次存储值而浪费空间。我正在寻找java中的优化和高效实现。我很感激你的建议。

2 个答案:

答案 0 :(得分:7)

应该使用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);

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

答案 1 :(得分:2)

您不会浪费空间,因为每个条目都共享对同一对象的引用。如果您想要更详细的答案,请发布一些代码。