class Hash {
int a;
Hash(int h){
a=h;
}
public boolean equals(Object o) {
Boolean h=super.equals(o);
System.out.println("Inside equals ");
return h;
}
public int hashCode() {
System.out.println("Inside Hash");
return 2;
}
}
public class Eq {
public static void main(String...r) {
HashMap<Hash,Integer> map=new HashMap<Hash,Integer>();
Hash j=new Hash(2);
map.put(j,1);
map.put(j,2);
System.out.println(map.size());
}
}
出力は、同じハッシュコードを返すので、オブジェクトはハッシュマップに追加された第二の時間が、それはequalsメソッドを使用しなければならないJavaコレクション - オーバーライド等しいとhashCode
inside hash inside hash 1
ましたそれは電話しません。だからここに問題がある?
http://stackoverflow.com/editing-help –
[JavaでのequalsおよびhashCodeのオーバーライド](http://stackoverflow.com/questions/27581/overriding-equals-and-hashcode-in-java) –