详解 Map集合
(请关注 本人“集合总集篇”博文——《详解 集合框架》)
首先,本人来讲解下 Map集合 的特点:
Map集合 的特点:
特点:
通过 键 映射到 值的对象
一个 映射 不能包含重复的键
每个 键 最多只能映射到一个值
Map集合 的继承体系:
Map接口是集合框架 的 顶层接口之一,而Map接口的继承体系如下所示:
子接口:
Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMessageContext, MessageContext, NavigableMap<K,V>, SOAPMessageContext, SortedMap<K,V>子实现类:
HashMap,
LinkedHashMap,
Hashtable,
AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, IdentityHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap
上示为 Map接口的 实现类 和 子接口。
但是,在我们今后的学习工作过程中,主要应用的 实现类 和 子接口 如下:
Map集合 的常用API:
本人现在按照功能来介绍一下这个接口的API,以便后续内容的讲解:
- 添加功能 :
- V put(K key,V value):
添加/替换 元素
如果 键是第一次存储,就 直接存储元素,返回null
如果 键不是第一次存在,就 用值把以前的值替换掉,返回以前的值
- 删除功能:
void clear():
移除所有的键值对元素V remove(Object key):
根据键删除键值对元素,并把值返回
- 判断功能:
- boolean containsKey(Object key):
判断集合是否包含指定的键- boolean containsValue(Object value):
判断集合是否包含指定的值- boolean isEmpty():
判断集合是否为空
- 获取功能:
- Set<Map.Entry<K,V>> entrySet():
返回一个键值对的Set集合- V get(Object key):
根据键获取值- Set
keySet():
获取集合中所有键的集合- Collection
values():
获取集合中所有值的集合
- 长度功能:
- int size():
返回集合中的键值对的对数
Map集合 的 注意事项:
注意事项:
注意 键 的类型是否重写了equals()方法:
(是否录入是靠 已存在HashMap集合中的键值对的 键 与 要录入的键值对的 键 的equals()的返回值:
- 返回true,则 用新键值对覆盖旧键值对
- 返回false,则 直接录入新键值对)
那么,现在,本人就来讲解下这个接口的常用的四个子类 —— HashMap、Hashtable 、LinkedHashMap 和 TreeMap 吧:
HashMap:
请观看本人博文 —— 《详解 HashMap》
Hashtable:
请观看本人博文 —— 《详解 Hashtable》
LinkedHashMap:
请观看本人博文 —— 《详解 LinkedHashMap》
TreeMap:
请观看本人博文 —— 《详解 TreeMap》
(集合总集篇链接:https:////www.cnblogs.com/codderYouzg/p/12416560.html)