我有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