HashMap不同的哈希码返回不同的值? Java的

时间:2012-04-21 15:42:40

标签: java hashmap

我有两个对象的hashmap,但它似乎返回不同的值,因为hashcode不同。 实施例

HashMap<HashMapTest, String> newMap = new HashMap<HashMapTest, String>();
    newMap.put(new HashMapTest("test"), "line");
    System.out.println(newMap.get(new HashMapTest("test")));

当我将它放在hashmap中并且从hashmap中获取时,哈希码是不同的。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:6)

您是否在hashCode()中提供了HashMapTest方法的自定义实施?我猜不是,这是继承自hashCode()的{​​{1}}的默认行为(您实际上使用的是两个不同的对象。)请查看this question以提供正确的java.lang.Object实现为你的课程。