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

Nik*_*arg 15 java hashmap

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

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

我得到了.这意味着hashmap无法识别两个密钥(用于get&put调用)是否相同.

有人可以帮我吗?

Mik*_*e Q 34

你需要实现hashCode()equals(). compareTo()对于有序映射/集合,还需要它.

有关详情,请参阅此问题.


amo*_*fis 13

你应该实现equals()hashCode().你的班级也应该是不可改变的.如果它是可变的,它的哈希码可以在将它添加到map后改变.然后地图可能会遇到问题.