集合进阶(Map集合)
一.Map集合
Map概述体系
双列集合
集合中的元素是一对一对的
格式:{key1=value1 , key2=value2 , key3=value3 , ...}
Map集合中的每一个元素是以key=value的形式存在的 一个key=value就称之为键值对
而且在Java中有一个类叫Entry类 Entry的对象用来表示键值对对象 Map集合也被叫做"键值对对象"
Map集合的特点(Map的应用场景):
所有键是不允许重复的 值可以重复 键和值是一一对应的 每一个键只能找到自己的对应的值
需要存储一一对应的数据时 就可以考虑使用Map集合来做
Map集合体系的特点
注意:Map系列集合的特点都是由键决定的 值只是一个附属品 值是不做要求的
HashMap(由键决定特点):无序 不重复 无索引;(用的最多) 值不做要求
LinkedHashMap(由键决定特点):由键决定特点:有序 不重复 无索引 值不做要求
TreeMap(由键决定特点:按照大小默认升序排序 不重复 无索引 值不做要求
| 方法名称 | 说明 |
|---|---|
| public V put(K key,V value) | 添加元素 |
| public int size() | 获取集合大小 |
| public void clear() | 清空集合 |
| public boolean isEmpty() | 判断集合是否为空 为空返回true 反之 |
| public V get(Object key) | 根据键获取对应值 |
| public V remove(Object) | 根据键删除整个元素 |
| public boolean containsKey(Object key) | 判断是否包含某个键 |
| public boolean containsValue(Object key) | 判断是否包含某个值 |
| public Set<K> keySet() | 获取全部键的集合 |
| public Collection<V> value() | 获取Map集合的全部值 |
Map集合遍历方式
| 键找值 | 键值对 | Lambda |
|---|---|---|
| 先获取Map集合全部的键 再通过遍历键来找值 | 把"键值对"看成一个整体进行遍历(难度较大) | JDK1.8开始之后的新技术(非常的简单) |
键找值
| 方法名称 | |
|---|---|
| public Set<K> keySet() | 获取全部键的集合 |
| public V get(Object key) | 根据键获取对应值 |
键值对
| Map提供打分法 | 说明 |
|---|---|
| Set<Map.Entry<K,V>> entrySet() | 获取所有键值对"键值对"的集合 |
| Map.Entry提供的方法 | 说明 |
|---|---|
| K getKey() | 获取键 |
| V getValue | 获取值 |
Lambda
| 方法名称 | 说明 |
|---|---|
| default void forEach(BiConsumer<? super K, ? super V> action) | 结合lambda遍历Map集合 |