HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
HashMap 是无序的,即不会记录插入的顺序。
HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
HashMap类常用操作
方法 | 功能 | 描述 |
---|---|---|
put() | 将键/值对添加到 hashMap 中 | |
get() | 获取指定 key 对应对 value | |
getOrDefault() | 获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值 | |
remove() | 删除指定键 key 的映射关系 | |
containsKey() | 是否存在指定的 key | |
keySet() | 返回 hashMap 中所有 key 组成的集合视图。 | |
values() | 返回 hashMap 中存在的所有 value 值。 | |
isEmpty() | 判断 hashMap 是否为空 | |
size() | 计算 hashMap 中键/值对的数量 | |
forEach() | 对 hashMap 中的每个映射执行指定的操作。 | |
containsValue() | 检查 hashMap 中是否存在指定的 value 对应的映射关系。 |
HashMap与Hashtable的抉择
HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式
区别1:
- HashMap可以存放 null
- Hashtable不能存放null
区别2:
- HashMap不是线程安全的类
- Hashtable是线程安全的类