# 哈希表


# C++

unordered_map 无序哈希表,一对一,没有顺序

# 四大迭代器

begin() end() rbegin() rend()

# clear()

清空哈希表

# find()

搜索key,如果没有找到就返回end()

# 操作符[]

unordered_map<int,int> hash;
hash[0] = 1;

# Java

HashMap

# put()

put(key,value) 将键值对添加到HashMap中, 如果键值对原本就存在则替换

# putAll()

将另一个HashMap中的全部元素添加到HashMap中

# putIfAbent()

putIfAbent(key,value) 如果没有找到key,就插入键值对

# remove()

remove(key,value) 将指定的键值对删除

# containsKey()

检查是否存在该键

# containsValue()

检查是否存在该值

# get()

获取key 对应的value

# getOrDefault()

获取key 对应的value如果没有该键值对,返回默认值

# keySet()

返回key的迭代器

// 遍历
Map<String,String> hash = new HashMap();
for(String key : hash.keySet()){
	// do
}
for(Map.Entry<String,String> entry : hash.entrySet()){
	// do
}

# Python

dict() Python自带的字典 defaultdict(Type) 好用的字典,带有默认值的 [ from collections import defaultdict ]

# clear()

清空哈希表

# get()

get(key, default=None) 返回键对应的值,如果没有映射关系,那就返回default

# items()

返回一个视图对象

for key,value in dict.items():

# keys()

返回一个key的视图对象

# values()

返回一个value的视图对象

# 操作符in

判断是否存在该key

d = defaultdict(int)
d[1] = 2
a = 1
print(a in d) # True