public void put(int key, int value) {
int hash = (key % TABLE_SIZE);
if (table[hash] == null)
table[hash] = new LinkedHashEntry(key, value);
else {
LinkedHashEntry entry = table[hash];
while (entry.getNext() != null && entry.getKey() != key)
entry = entry.getNext();
if (entry.getKey() == key)
entry.setValue(value);
else
entry.setNext(new LinkedHashEntry(key, value));
}
}
我只是在学习哈希表链接的概念,我想如果我们添加一个新项目。我们将查看该项目的密钥是否存在,如果存在,我们只需将其链接到具有相同密钥的同一节点。但是刚刚在哈希表链接标题下在线找到此代码,但它并没有按照我的假设到。要么我错了,要么这个代码。这部分让我最困惑:
if (entry.getKey() == key)
entry.setValue(value);
这将与在开放地址散列中所做的相同。您只需用新节点替换旧节点。只需完整定义哈希表和哈希表链接及其差异的示例。
谢谢,