1、HashMap:
1)、 引入
如果业务需要我们去用姓名的拼音手写字母匹配完整姓名,那么如果用单列数据,我们可能需要两个集合才能存储,而且两个集合之间没有关联不好操作,这种时候双列数据就会起很大作用
2)、 单列数据与双列数据
3)、map概述
Map :映射。跟 Collections 体系的集合,是不一样的。是以key-value的形式保存数据的,常常称之为键值对。
4)、 HashMap概念及特点
概述:HashMap实现了Map接口,是Map子类中使用最最最多的。
数据结构:key部分使用的数据结构为:数组+双向链表+红黑树 。HashSet使用的就是key部分进行存储的。
存储数据特点
-
键值对映射关系
-
一个键对应一个值
-
键不能重复,值可以重复
-
键允许为空值
-
元素存取无序
5)、 方法的使用
方法名 | 说明 |
---|---|
V put(K key,V value) | 添加元素 |
V remove(Object key) | 根据键删除键值对元素 |
void clear() | 移除所有的键值对元素 |
boolean containsKey(Object key) | 判断集合是否包含指定的键 |
boolean containsValue(Object value) | 判断集合是否包含指定的值 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中键值对的个数 |
V get(Object key) | 根据键获取值 |
Set<K> keySet() | 获取所有键的集合 |
Collection<V> values() | 获取所有值的集合 |
Set<Map.Entry<K,V>> entrySet() | 获取所有键值对对象的集合 |
6)、增加
import java.util.HashMap;
import java.util.Map;
public class AddDemo {
public static void main(String[] args) {
// 定义一个map对象,key存放字符串类型,value存放Integer类型
Map<String, Integer> map = new HashMap<>();
map.put("a", 5);
map.put("c", 2);
map.put("e", 6);
map.put(null, 0);