java--集合-Map

来源:互联网 发布:手办 预订软件 编辑:程序博客网 时间:2024/05/22 12:56

Map

1.键值对的集合2.不能包含重复的键;    在处理相同的Key时,将新值存入,旧值被替换并返回。3.每个键最多只能映射到一个值

类关系图

这里写图片描述

主线一:map abstractMap HashMap

 1. Map 是1.2版本以后出现的顶层键值对接口     内部定义了Entry<\K,V>接口作为键值对的顶层接口     主要提供了put(K key, V value),remove(Object key),get(Object key),contain(Object key)     并可以返回 键集、值集或键-值对集 2. AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API 3. HashMap 继承于AbstractMap,使用桶表结构实现Map方法. 4. WeakHashMap 继承于AbstractMap,使用桶表结构实现Map方法.但WeakHashMap的键是“弱键”

主线二:map SortedMap NavigableMap TreeMap

 5. SortedMap 是继承于Map的接口。定义了排序功能. 6. NavigableMap 是继承于SortedMap的接口。定义了导航方法.。 7. TreeMap 继承于AbstractMap,且实现了NavigableMap接口;因此,TreeMap中的内容是“有序的键值对”!

主线三: map Dictionary Hashtable

 7. Hashtable ,继承于Dictionary,而且也使用桶表结构实现Map接口;但和HashMap相比,Hashtable是线程安全的,而且它支持通过Enumeration去遍历。 8. Dictionary是1.0版本就有的顶层键值对抽象类

主线四: Hashtable,Collections.syncronizedMap ,ConcurrentHashMap

线程安全的Map

实现类对比

方面:有序,线程安全,效率,null键/值,内部结构,出现版本

HashMap    无序,线程不安全,高效率,允许null键/null值,自定义hash离散的桶表结构,1.2Hashtable    无序,线程安全(同步方法),低效率,不允许null键/null值,原始hash离散的桶表结构,1.0TreeMap     有序,线程不安全,高效率,按需允许null键/null值,基于红黑树的结构,1.2ConcurentHashMap    无序,线程安全(cas算法),高效率,不允许null键/null值,hash离散的桶表结构,1.5
原创粉丝点击