使用Javascript创建哈希表
让我们建立一个简单的类,用它来定义所有这些方法。我们将创建一个容器对象来存储哈希表,并创建一个显示函数来显示该表。请注意,为了解决冲突,我们将使用链接。
显示功能获取表中的每个条目(哈希值)并打印与之关联的所有对。
示例
我们还将在原型上创建一个新类来存储键值对。
class HashTable {
constructor() {
this.container = [];
//用空数组填充容器
//添加更多元素
//发生碰撞的情况
for(let i=0; i < 11; i ++ ) {
this.container.push([]);
}
display() {
this.container.forEach((value, index) => {
let chain = value
.map(({ key, value }) => `{ ${key}: ${value} }`)
.join(" --> ");
console.log(`${index}: ${chain}`);
});
}
hash(key) {
return key % 11;
}
}
HashTable.prototype.KVPair = class {
constructor(key, value) {
this.key = key;
this.value = value;
}
}
}我们在显示方法中使用了一些高级功能,例如解构。这有助于避免样板代码。