HashTable和HashMap键值如何存储在内存中?
我知道有一种哈希技术应用于密钥以将其值存储在内存地址中。
但我不明白碰撞是怎么发生的?Java使用哪种哈希算法来创建内存空间?是MD5吗?
我知道有一种哈希技术应用于密钥以将其值存储在内存地址中。
但我不明白碰撞是怎么发生的?Java使用哪种哈希算法来创建内存空间?是MD5吗?
其基本思想是这样的:HashMap
HashMap
hashCode()
Class
hashCode()
equals()
Object
String
hashCode = 1.char + 2.char + 3.char...
hashCode()
hashCode()
'hashcode % array.length = bucket'
'132 mod 16 = 4'
HashMap
Maps
在这种情况下,
mod 256
现在,如果你试图查找Sandra Dee的电话号码,你会散列她的名字,按256修改,然后查看桶152。在那里,你会发现约翰·史密斯。那不是桑德拉,再看看...啊哈,有桑德拉被锁在约翰身后。