- 键值对 key : value
- 哈希碰撞:两个不同的key通过同一个hash函数得到相同的内存地址
4通过哈希函数解析出的地址也是1,冲突了。
解决方法:
链表法, 在后面通过链表加入内存地址相同的值。
- 复杂度
- 访问: 没有这个方法
- 搜索:O(1), 如果有hash碰撞的情况下,就不是O(1)了,为O(K), K为碰撞元素的个数
- 插入: O(1)
- 删除: O(1)
- Python常用操作:
hashTable = ['']x4
mapping = {
}
hashTable[1] = 'hanmeimei'
hashTable[2] = 'lihua'
hashTable[3] = '233'
mapping[1] = 'hanmeimei'
mapping[2] = 'lihua'
mapping[3] = '233'
hashTable[1] = 'unspoken'
mapping[1] = 'asdf'
hashTable[3] = ''
mapping.pop(1)
del mapping[1]
hashTable[3]
mapping[2]
3 in mapping
len(mapping)
len(mapping) == 0
- java常用操作:
java.lang.String[] hashTable = new java.lang.String[4];
HashMap<Integer, java.lang.String> map = new HashMap<>();
hashTable[1] = "xiayi";
hashTable[2] = "dan"