使用自定義物件作為鍵
在使用自己的物件作為鍵之前,必須覆蓋物件的 hashCode() 和 equals()方法。
在簡單的情況下,你會有類似的東西:
class MyKey {
    private String name;
    MyKey(String name) {
        this.name = name;
    }
    @Override
    public boolean equals(Object obj) {            
        if(obj instanceof MyKey) {
            return this.name.equals(((MyKey)obj).name);
        }
        return false;
    }
    
    @Override
    public int hashCode() {
        return this.name.hashCode();
    }
}
hashCode 將決定金鑰屬於哪個雜湊桶,equals 將決定該雜湊桶中的哪個物件。
如果沒有這些方法,你的物件的引用將用於上述比較,除非你每次都使用相同的物件引用,否則它將無效。