用代码实现hashmap
时间: 2023-10-13 11:10:36 浏览: 76
基于JavaScript的HashMap实现
以下是使用Python编写的HashMap实现示例:
```python
class HashMap:
def __init__(self, capacity):
self.capacity = capacity
self.buckets = [[] for _ in range(self.capacity)]
def _hash(self, key):
return hash(key) % self.capacity
def add(self, key, value):
index = self._hash(key)
for i, (k, v) in enumerate(self.buckets[index]):
if key == k:
self.buckets[index][i] = (key, value)
break
else:
self.buckets[index].append((key, value))
def get(self, key):
index = self._hash(key)
for k, v in self.buckets[index]:
if key == k:
return v
raise KeyError(key)
def remove(self, key):
index = self._hash(key)
for i, (k, v) in enumerate(self.buckets[index]):
if key == k:
del self.buckets[index][i]
return
raise KeyError(key)
```
在这个实现中,我们使用了一个桶列表来保存哈希表中的键值对。在初始化时,我们创建了一个大小为`capacity`的空桶列表。`_hash`方法使用Python内置的`hash`函数来计算键的哈希值,并对哈希值进行取模以得到桶列表中的索引。`add`方法将键值对添加到桶列表中。如果已经存在相同的键,则更新其对应的值。`get`方法使用键来查找对应的值。如果键不存在,则抛出`KeyError`异常。`remove`方法用于删除键值对。如果键不存在,则抛出`KeyError`异常。
阅读全文