java中为了方便对以类为key的比较,需要重载作为key的类的hashCode和equals函数,以下为一简单实例: import java.util.*; class GroundDog { // Identifier of the GroundDog. int ghNumber; GroundDog(int i) { ghNumber = i; } // Override hashCode. public int hashCode() { return ghNumber; } // Override equals. public boolean equals(Object o) { if ((o != null) && (o instanceof GroundDog)) return ghNumber == ((GroundDog) o).ghNumber; else return false; } } class Prediction { boolean shadow = Math.random() > 0.5; public String toString() { if (shadow) return "Six more weeks of winter"; else return "Early Spring!"; } } public class HashtableDemo { public static void main(String[] args) { Hashtable ht = new Hashtable(); for (int i = 0; i < 10; ++i) { ht.put(new GroundDog(i), new Prediction()); } System.out.println("ht = " + ht + "/n"); System.out.println("Looking up prediction for groundhog #3: "); GroundDog gh = new GroundDog(3); if (ht.containsKey(gh)) { System.out.println((Prediction) ht.get(gh)); } } }