Map集合的概述
· Map集合是一种双列集合,每个元素包含两个数据。
· Map集合的每个元素格式:key=value(键值对应元素)。
· Map集合也被称为“键值对集合”。
Map集合与Collection集合格式比较
· Collection集合的格式[元素1,元素2,元素3...]
· Map集合的完整格式:{key1=value1,key2=value2,key3=value3...}
ps:· Map适合场景:类似购物车,不同物品种类与数量一一对应
· Map的键无序,不重复,Map的值可以重复
Map集合体系特点
· Map集合的特点都是由键决定的
· Map集合的键是无序,不重复的,无索引的,值不做要求(可以重复)
· Map集合后面重复的键对应的值会覆盖重复键的值。
· Map集合的键值对都可以为null
Map集合实现类特点
· HashMap:元素按照键是无序,不重复,值不做要求(与Map体系一致)
· LinkedHashMap:元素按照键有序,不重复,无索引,值不做要求
· TreeMap:元素按照键是排序,不重复,无索引的,值不做要求
Map常用API
· V put(k key,V value)~~~添加元素
· V remove(Object key)~~~根据键删除键值对元素
· void clear()~~~移除所有键值对元素
· boolean containKey(Object key)~~~判断集合是否包含指定的键
· boolean containValue(Object value)~~~判断集合是否包含指定的值
· boolean isEmpty()~~~判断集合是否为空
· int size()~~~集合的长度,也就是集合中键值对的个数
Map集合的遍历方式
· 1.键找值的方式遍历:先获取Map集合的全部键,再根据遍历键找值
Set<K>keySet()~~~获取所有键的集合
V get(Object key)~~~根据键获取值
· 2.键值对的方式遍历,把“键值对”看成一个整体,难度较大
Set<Map.Entry<K,V>>entrySet()~~~获取所有键值对对象的集合
K getKey()~~~获得键
V getValue()~~~获取值
· 3.Lambda表达式
default void forEach(BiConsumer<? super K,? super V>action)~~~结合Lambda遍历Map集合