Map接口是和Collection同等级的根接口,它表示一个键值对(key-value)的映射,每一个key对应一个value,查找Map中的数据,总是根据key来获取,所以key是不可重复的。
1.Map接口
Map集合的特点:
1)Map集合是双边队列的,通过键值对(key-value)来进行存储数据
2)key值不能重复,value值可以重复
Map集合下面常用的方法:
增加:put(K key, V value);存放的是一个键值对的数据
putAll(Map<? extends K> k, Map<? extends V> v);将一个map集合存放到另一个map集合
删除:remove(Object k);通过键删除整个键值对,并返回被删除的值
修改:put(K key, V value); 当key存在的时候,就修改。当key不存在时,就添加
查询:boolean isEmpty();是否为空,map集合为空就返回true,不为空就返回false
boolean containsKey();是否包含这个键
boolean containsValue();是否包含这个值
V get(Object k);通过键获取值
Collection<V> values();获取map集合中所有的value值,返回的是Collection集合
Set<Map.entry<K, V>>entrySet()`;将键值对实体成一个Set集合
2.Map的子类
1)HashMap<K, V> 底层是哈希表数据结构,基于hash值进行存储的,依靠key,要保证键的唯一性,需要覆盖hashCode方法,和equals方法。
2)TreeMap<K, V> 基于二叉树进行存储的,存储的形式也是key,实现了SortedMap接口会对key值进行排序。