哈希表


哈希表

哈希表(hash table), 也叫散列表,是根据关键码值(key value) 而直接进行访问的数据结构 它通过贝把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。 这个映射函数叫做散列函数(hash function),存放记录的数组叫做哈希表(或散列表)

Java HashMap

key - value对,key不重复

new HashMap()/ new TreeMap()
map.set(key, value)
map.get(key)
map.has(key)
map.size()
map.clear()

Java HashSet

不重复元素集合

new HashSet()/ new TreeSet()
set.add(value)
set.delete(value)
set.hash(value)

python map

dict

hashmap = {key: value}

python set

set

c++ map

std:unordered_map
std:map

c

Dictonary<TKey, TValue>
Hashtable
StringDictionary
SortedDictionary

源码阅读

  • Java hash set
  • Java hash map(hash node, tree node, 看懂put、get)

跳表

查询: O(logn) 更新/删除: O(logn) 空间复杂度: O(n)

leetcode

242. 有效的字母异位词