一、簡介
將鍵映射到值的對象。一個映射不能包含重複的鍵;每個鍵最多隻能映射到一個值。
此接口取代 Dictionary 類,後者完全是一個抽象類,而不是一個接口。
Map 接口提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關係集的形式查看某個映射的內容。映射順序 定義爲迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實現可明確保證其順序,如TreeMap 類;另一些映射實現則不保證順序,如 HashMap 類。
二、方法摘要
void |
clear()
從此映射中移除所有映射關係(可選操作)。 |
boolean |
containsKey(Object key) 如果此映射包含指定鍵的映射關係,則返回 true。 |
boolean |
containsValue(Object value) 如果此映射將一個或多個鍵映射到指定值,則返回 true。 |
Set<Map.Entry<K,V>> |
entrySet()
返回此映射中包含的映射關係的 Set 視圖。 |
boolean |
equals(Object o) 比較指定的對象與此映射是否相等。 |
V |
get(Object key) 返回指定鍵所映射的值;如果此映射不包含該鍵的映射關係,則返回 null 。 |
int |
hashCode()
返回此映射的哈希碼值。 |
boolean |
isEmpty()
如果此映射未包含鍵-值映射關係,則返回 true。 |
Set<K> |
keySet()
返回此映射中包含的鍵的 Set 視圖。 |
V |
put(K key,V value)
將指定的值與此映射中的指定鍵關聯(可選操作)。 |
void |
putAll(Map<? extendsK,? extends
V> m) 從指定映射中將所有映射關係複製到此映射中(可選操作)。 |
V |
remove(Object key) 如果存在一個鍵的映射關係,則將其從此映射中移除(可選操作)。 |
int |
size()
返回此映射中的鍵-值映射關係數。 |
Collection<V> |
values()
返回此映射中包含的值的 Collection 視圖。 |
三、HashMap與HashTable
HashMap |
HashTable
|
public class Hashtable extends Dictionary implements Map |
public class HashMap extends AbstractMap implements Map |
併發下使用HashMap就=就要自己添加同步了 | Hashtable 中的方法是同步的 |
在HashMap中,null可以作爲鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值爲null。當get()方法返回null值時,即可以表示 HashMap中沒有該鍵,也可以表示該鍵所對應的值爲null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵, 而應該用containsKey()方法來判斷。 | Hashtable中,key和value都不允許出現null值。 |