8分58秒,为什么不是hashtable(key).put(key,value)?
来源:14-5 实现属于我们自己的哈希表
小蜗牛有大理想
2023-12-09
老师好,8分58秒,为什么不是hashtable(key).put(key,value)?
或者hashtable[hash(key)].put(hash(key),value)?
写回答
1回答
-
liuyubobobo
2023-12-14
key 可以是任意值,比如字符串,hash(key) 保证了把 key 转换成一个合法的索引(0 - M-1 之间的整数值。)
hashtable[hash(key)].put(hash(key),value) 使得所有的 hashtable[hash(key)] 这个 map 中的键是一样的,都是 hash(key)。这首先使得 hashtable[hash(key)] 是一个 map 没有必要。其次,最重要的,hashtable[hash(key)] 为什么要设立成一个 map?为了解决哈希冲突,当 hash(key) 一致的时候,key 可能不一样。所以我们才在 hashtable[hash(key)] 存储不同的 key。hashtable[hash(key)].put(key,value) 存储了不同的 key 对应的 value。
继续加油!:)
00
相似问题