我有Map<Date, String。我有两个a, b相等的 Date 对象。我将一个字符串值放入与 key 关联的映射中a。然后我尝试获取与键关联的映射值a,b但只a返回我输入的值。是否有可能用b钥匙获得我的价值。我知道当键是简单的字符串时这是可能的。为什么这不适用于其他类型的对象?
public class Main {
public static void main(String[] args) {
    Map<Date, String> map = new HashMap<Date, String>();
    Date a = new Date(20131105);
    Date b = new Date(20131105);
    map.put(a, "sweet");
    System.out.println(map.get(a));
    System.out.println(map.get(b));
}
static class Date {
    private int ymd;
    public Date(int ymd) {
        this.ymd = ymd;
    }
    public int getYmd() {
        return ymd;
    }
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Date) {
            return ((Date) obj).ymd == ymd;
        }
        return false;
    }
}
}
输出是:
sweet
null