Map存儲鍵值對形勢的數據,保存的元素總是成對出現的。鍵不能重複,值可以重複。
繼承關係
Map沒有父接口,不是繼承自Collection。
Map下有HashMap、HashTable、WeakHashMap、IdentityHashMap、TreeMap實現類,HashMap下有LinkedHashMap子類。
HashMap
HashMap基於散列表實現,繼承了AbstractMap抽象類,AbstractMap中已經實現了部分Map的功能方法。實現了Map、Cloneable、Serializable接口。
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
LinkedHashMap
LinkedHashMap繼承自HashMap類,功能類似於HashMap,但是遍歷時取出來的鍵值是插入順序。因爲有鏈表維護內部元素的順序,迭代速度比HashMap快。
public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>
HashTable
操作元素相關的方法使用了synchronized關鍵字,實現了同步的Map。
public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable
WeakHashMap
弱鍵映射,允許釋放映射所指的對象。
public class WeakHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V> {
IdentityHashMap
用==代替equals對鍵值進行比較的特殊Map實現。
public class IdentityHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Serializable, Cloneable
TreeMap
基於紅黑樹實現,裏面的鍵值會被排序。具有subMap返回一個子集的方法。
public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable