我有两个对象的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中获取时,哈希码是不同的。有没有办法解决这个问题?
答案 0 :(得分:6)
您是否在hashCode()
中提供了HashMapTest
方法的自定义实施?我猜不是,这是继承自hashCode()
的{{1}}的默认行为(您实际上使用的是两个不同的对象。)请查看this question以提供正确的java.lang.Object
实现为你的课程。