微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java SE 8 Hashmap中不同键的相同单元格

如何解决Java SE 8 Hashmap中不同键的相同单元格

HashMap<String,Integer> map = new HashMap<>();

假设我两次使用“ put”功能

map.put("hello",4);
map.put("world",5);

我被告知,幕后有一个散列函数,可以根据给定的键计算应该输入值的右单元格。

我的问题是:

两种计算都有可能导致同一个单元格,因此命令#2将导致与#1中给出的单元格相同,因此将丢失4个值?

如果是的话,如何将#2重新映射到另一个已经占用的单元格? (我不想使用散列来更改。)

解决方法

这完全是

map.put("hello",4);
map.put("hello",5);

但是,我认为您的意思是发生哈希冲突时,将不同的键放入映射中,这会导致相同的哈希。这将使用链接。

因为它们的哈希值相同,所以从理论上讲,您可以在插入所有内容之前对.get(object)进行获取,并在碰撞时添加alter key。

但是实际上,让地图来做它的工作,并让底层实现按其设计方式运作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。