【发布时间】:2019-12-16 16:38:03
【问题描述】:
我正在尝试使用 hashmap 对一个自定义类进行测试,该类具有重写的 equals 和 hashcode 方法:
public class Car {
public int hashcode() {
return 1;
}
@Override
public boolean equals(Object o1) {
return true;
}
}
主类:
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<Car,String> map = new HashMap<Car,String>();
Car c1 = new Car();
Car c2 = new Car();
System.out.println(c2.equals(c1));
System.out.println(c1==c2);
map.put(c1, "car1");
map.put(c2, "car2");
System.out.println(map.size());
System.out.println(map.get(c1));
}
我预计输出为 1 和 car2,但它是 2 和 car1。谁能解释一下原因。我的 Equals 对于每个汽车对象都是正确的,并且哈希码也是相同的。
谢谢,
【问题讨论】: