根据一些教程,我应用了一个HashMap类,并且只使用了一个__get_hash_mod_size()方法,
def __get_hash_mod_size(self, key):
hash_key_var = hash(key+str(self.hahsmap_size*0.01))
return hash_key_var % self.hahsmap_size
一切似乎都工作正常,但我不确定,我希望看到一些意见来改进它,或者是否可能存在任何问题或边缘情况?
哈希映射
class HashMap():
def __init__(self):
self.hahsmap_size = 32
self.hashmap_data = [None] * self.hahsmap_size
def __get_hash_mod_size(self, key):
hash_key_var = hash(key+str(self.hahsmap_size*0.01))
return hash_key_var % self.hahsmap_size
def set_key_value(self, key, value):
key_var = self.__get_hash_mod_size(key)
key_value_list = [key, value]
if self.hashmap_data[key_var] is None:
self.hashmap_data[key_var] = list([key_value_list])
return True
else:
for pair in self.hashmap_data[key_var]:
print(pair)
if pair[0] == key:
pair[1] = value
return True
self.hashmap_data[key_var].append(key_value_list)
return True
def get_key(self, key):
key_var = self.__get_hash_mod_size(key)
if self.hashmap_data[key_var] is not None:
for pair in self.hashmap_data[key_var]:
if pair[0] == key:
return pair[1]
return None
def remove_key(self, key):
key_var = self.__get_hash_mod_size(key)
if self.hashmap_data[key_var] is not None:
return False
for i in range(len(self.hashmap_data[key_var])):
if self.hashmap_data[key_var][i][0] == key:
self.hashmap_data[key_var].pop(i)
return True
def print_hashmap(self):
for item in self.hashmap_data:
if item is not None:
print(item)
繁花不似锦
相关分类