我正在编写简单的代码,通过重写hashcode和equels方法,任何一个plz都可以告诉我,如果我在课堂上过度或没有过度,那将是如何工作的。
class HexToDec {
public static void main(String[] args) {
Test t = new Test();
// Test t1 = new Test("Aamir", true, "good lead, choclate hero");
Test t3 = new Test();
Test t4 = new Test();
t4.setName("ranjith");
System.out.println("a1.hashCode() = " + t);
System.out.println("a2.hashCode() = " + t4);
System.out.println("a1.hashCode() = " + t3.hashCode());
System.out.println("a2.hashCode() = " + t4.hashCode());
// System.out.println("is a1 == a2 " + (t == t1));
System.out.println("is a1.equals(a2) " + (t3.equals(t4)));
}
}
答案 0 :(得分:-1)
每当覆盖equals()时,你必须覆盖hashCode()方法。因为,hashcode用于唯一标识每个对象。如果2个对象相等,那么它们应该具有相同的哈希码。更改equals()方法后,重写hashCode()以使其理解两个对象可被视为相等的原因。
http://javapapers.com/core-java/hashcode-and-equals-methods-override/