//Altering Methods public Object put(Object key, Object value); public Object remove(Object key); public void putAll(java.util.Map); public void clear();
//Querying Methods public Object get(Object key); public int size(); public boolean isEmpty(); public boolean containsKey(Object); public boolean containsValue(Object); public boolean equals(Object);
//Viewing Methods public java.util.Set keySet(); //Gets keys public java.util.Collection values(); //Gets values public java.util.Set entrySet(); //Gets mappings
public static interface java.util.Map.Entry { //a map-entry (single key/value pair) public Object getKey(); //returns current entry key public Object getValue(); //returns current entry value public Object setValue(Object value); public boolean equals(Object); public int hashCode(); } } Map接口提供了方便易用的方法,通過這些方法可以查詢、查看、修改當前Map的內容。注重對于Map接口的keySet()方法返回一個Set,Set是Collection接口的一個擴展,包含不重復的一組對象。因為Map中的key是不可重復的,所以得到所有key的keySet()方法返回一個Set對象。Map接口本身還包含了一個Map.Entry接口,一個Map.Entry就是Map中的一個要害字/值對。Map接口中的entrySet()方法就返回了一個集合對象,其中每一個元素都實現了Map.Entry接口。Map接口的get(Object key),put(Object key,Object value),和remove(Object key)方法都有同一個問題。他們的返回類型都是Object,當返回null時,可以猜測為調用那個方法前那個key不存在。但是只有在null不答應作為Map的值時可以這樣猜測。所有Map接口的通用實現都答應null作為key或者value,這就說當返回一個null值,就可以意味著很多事情。只是因為通用實現答應null值,你不能下那個映射有null值的結論。假如你確知沒有null值,那返回null值就意味著調用那個方法前,映射里并沒有那個鍵。否則,你必須調用containsKey(Object key)來看看那個Key是否存在。
Hashtable
java.util.Hashtable實現了Map接口,在Hashtable中使用key對象的hashCode()作為對應的對象的相對存儲地址,以便實現根據要害字快速查找對象的功能。所以只有一個實現了hashCode()和equals()方法的對象才可作為Hashtable的key。null值不能作為要害字或值。 public class java.util.Hashtable extends Dictionary implements Cloneable, Map, Serializable {
//Hashtable constrUCtors //construct a default Hashtable with default capacity and load of 0.75 public Hashtable(); //construct a Hashtable with passed capacity and default load of 0.75 public Hashtable (int initialCapacity); //construct Hashtable with passed capacity and load public Hashtable(int initialCapacity, float load); //construct Hashtable with passed mapping public Hashtable(Map);
//Hashtable specific methods //checks if Object is in Hashtable public boolean contains(Object); //returns Enumeration of elements in Hashtable public Enumeration elements(); //returns Enumeration of keys in hashtable public Enumeration keys(); //creates shallow copy of Hashtable(structure copied, but not key/values) public Object clone(); //PRints out key/value pairs of Hashtable elements public String toString(); //reorganizes all elements in Hashtable, and increases Hashtable capacity protected void rehash();
//get Value from passed in key public Object get(Object); //insert key/value pair public Object put(Object key, Object value);