哈希表是一種重要的存儲方式,也是一種常見的檢索方法。其基本思想是將關係碼的值做爲自變量,經過必定的函數關係計算出對應的函數值,把這個數值解釋爲結點的存儲地址,將結點存入計算獲得存儲地址所對應的存儲單元。檢索時採用檢索關鍵碼的方法。如今哈希表有一套完整的算法來進行插入、刪除和解決衝突。在Java中哈希表用於存儲對象,實現快速檢索。   Java.util.Hashtable提供了種方法讓用戶使用哈希表,而不須要考慮其哈希表真正如何工做。   哈希表類中提供了三種構造方法,分別是:   public Hashtable()   public Hashtable(int initialcapacity)   public Hashtable(int initialCapacity,float loadFactor)   參數initialCapacity是Hashtable的初始容量,它的值應大於0。loadFactor又稱裝載因子,是一個0.0到0.1之間的float型的浮點數。它是一個百分比,代表了哈希表什麼時候須要擴充,例如,有一哈希表,容量爲100,而裝載因子爲0.9,那麼當哈希表90%的容量已被使用時,此哈希表會自動擴充成一個更大的哈希表。若是用戶不賦這些參數,系統會自動進行處理,而不須要用戶操心。   Hashtable提供了基本的插入、檢索等方法。   ■插入   public synchronized void put(Object key,Object value) 給對象value設定一關鍵字key,並將其加到Hashtable中。若此關鍵字已經存在,則將此關鍵字對應的舊對象更新爲新的對象Value。這代表在哈希表中相同的關鍵字不可能對應不一樣的對象(從哈希表的基本思想來看,這也是顯而易見的)。   ■檢索   public synchronized Object get(Object key)   根據給定關鍵字key獲取相對應的對象。   public synchronized boolean containsKey(Object key)   判斷哈希表中是否包含關鍵字key。   public synchronized boolean contains(Object value)   判斷value是不是哈希表中的一個元素。   ■刪除   public synchronized object remove(object key)   從哈希表中刪除關鍵字key所對應的對象。   public synchronized void clear()   清除哈希表   另外,Hashtalbe還提供方法獲取相對應的枚舉集合:   public synchronized Enumeration keys()   返回關鍵字對應的枚舉對象。   public synchronized Enumeration elements()   返回元素對應的枚舉對象。   例8.5 Hashtable.java給出了使用Hashtable的例子。   例8.5 Hashtalbe.java。   //import java.lang.*;   import java.util.Hashtable;   import java.util.Enumeration;   public class HashApp{    public static void main(String args[]){     Hashtable hash=new Hashtable(2,(float)0.8);     //建立了一個哈希表的對象hash,初始容量爲2,裝載因子爲0.8     hash.put("Jiangsu","Nanjing");     //將字符串對象「Jiangsu」給定一關鍵字「Nanjing」,並將它加入hash     hash.put("Beijing","Beijing");     hash.put("Zhejiang","Hangzhou");     System.out.println("The hashtable hash1 is: "+hash);     System.out.println("The size of this hash table is "+hash.size());     //打印hash的內容和大小     Enumeration enum1=hash.elements();     System.out.print("The element of hash is: ");     while(enum1.hasMoreElements())      System.out.print(enum1.nextElement()+" ");     System.out.println();     //依次打印hash中的內容     if(hash.containsKey("Jiangsu"))      System.out.println("The capatial of Jiangsu is "+hash.get("Jiangsu"));     hash.remove("Beijing");     //刪除關鍵字Beijing對應對象     System.out.println("The hashtable hash2 is: "+hash);     System.out.println("The size of this hash table is "+hash.size());    }   }   運行結果:   The hashtable hash1 is: {Beijing=Beijing, Zhejiang=Hangzhou, Jiangsu=Nanjing}   The size of this hash table is 3   The element of hash is: Beijing Hangzhou Nanjing   The capatial of Jiangsu is Nanjing   The hashtable hash2 is: {Zhejiang=Hangzhou, Jiangsu=Nanjing}   The size of this hash table is 2   Hashtable是Dictionary(字典)類的子類。在字典類中就把關鍵字對應到數據值。字典類是一個抽象類。在java.util中還有一個類Properties,它是Hashtable的子類。用它能夠進行與對象屬性相關的操做。