在哈希表中处理冲突的一种方法是链接。链接将冲突的项目存储在链接列表中。但是当用户使用键搜索时,哈希表如何识别该项?
答案 0 :(得分:2)
1)对密钥进行哈希处理以获得哈希桶。
int hashKey = key.hashCode();
2)此存储桶中的所有内容都链接在链接列表中。我们可以迭代它,直到找到一个与键匹配的元素。对于链表中的每个条目,
if (key.equals(entry.getKey()) { return entry.getValue(); }
第二步是简单的线性搜索。
如果这些链不长,那么Hashtables只能正常工作,所以你必须足够大(和选择一个可靠的密钥)以避免/最小化冲突。
答案 1 :(得分:1)
哈希表将您的密钥与链表中与密钥哈希匹配的每个密钥进行比较。
答案 2 :(得分:1)
简短的回答,通过线性搜索链的元素。
哈希函数生成链的head
。
更准确地说,这在Theta(1 + 1)中起作用,其中l是负载因子,与O(n)的线性正态线性搜索相比更快