在 java Hashmap 中将自己的类设置为键

2022-09-02 23:04:21

我有一个类,我想在HashMap中将其设置为键。我已经为该类实现了 compareTo 方法。但是当我这样做时:

map.put(new MyKey(dummyArguements) , dummyValue );
System.out.println(map.get( new MyKey(dummyArguements) ) );

我得到空。因此,这意味着哈希映射无法识别两个键(用于 get 和 put 调用)是否相同。

有人可以帮我吗?


答案 1

您需要实现 和 。 对于排序的地图/集,还需要。hashCode()equals()compareTo()

有关详细信息,请参阅此问题


答案 2

您应该实现 和 。您的类也应该是不可变的。如果它是可变的,则它的哈希代码可以在将其添加到映射后更改。然后,地图在查找地图时可能会出现问题。equals()hashCode()