为什么等于且哈希码不影响哈希图大小

问题描述 投票:0回答:1

我正在尝试使用带有自定义类和哈希码方法的自定义类的哈希映射进行测试:

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均适用,并且哈希码也相同。

谢谢,

hashmap equals hashcode
1个回答
0
投票

这是一个拼写错误。哈希码没有被覆盖。我创建了一个方法hashcode()而不是hashCode()。更正所提供的预期结果。

© www.soinside.com 2019 - 2024. All rights reserved.