我有以下Java代码,我已经覆盖了相同的,但不是hashCode。
我的要求是检查HashCodeSampleMain类的两个对象是否具有相同的值。
我可以在不重写hashCode的情况下完成它。
public class HashCodeSampleMain {
public static void main(String[] args) {
HashCodeSample obj1 = new HashCodeSample(100, "surender");
HashCodeSample obj2 = new HashCodeSample(100, "surender");
if (obj1.equals(obj2))
{
System.out.println("both objects are same");
}
}
}
public class HashCodeSample {
int id =0;
String name=null;
public HashCodeSample(int temp_id, String temp_name)
{
id =temp_id;
name =temp_name;
}
@Override
public boolean equals(Object obj) {
HashCodeSample m =(HashCodeSample)obj;
if(this.id ==m.id && this.name ==m.name)
{
return true;
}
else
{
return false;
}
}
}
输出
both objects are same
我想了解hashCode与等值方法相关的重要性。