如何存储的哈希值映射(如果该值是重复的)?

黑主教:

难道一个Java HashMap保存重复的值作为唯一的或不保存他们的个人?

让我们想象一下,我有以下键值对值:

A -> "a very long string...."
B -> "another very long string...."
C -> "the same very long string from A key.... (but not same string instance)"

将它保存为3个键和3个值,或作为键3和2倍的值(如值A是完全相同的,作为值C

我担心的是大小,因为我要保存的值是相当大的,并没有任何意义复制它们。

他们是:

一个HashMap可以包含重复的值,所以在你的榜样将有3个按键,并在3个值Map

但是,如果您担心大量实例存储多倍值在你Map,你应该引用存储到同一个实例。

例如:

String val = "a very long String............";
String val2 = "a second long String.........";
map.put(1,val);
map.put(2,val2);
map.put(3,val);

只有两个大的String情况下。Map包含这些3个引用StringS(两个引用到所述第一String和一个参照第二String),但引用占用存储量小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章