哈希代码覆盖在java中

时间:2013-12-31 06:34:44

标签: java hashcode

我正在编写简单的代码,通过重写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)));
        }
    }

1 个答案:

答案 0 :(得分:-1)

每当覆盖equals()时,你必须覆盖hashCode()方法。因为,hashcode用于唯一标识每个对象。如果2个对象相等,那么它们应该具有相同的哈希码。更改equals()方法后,重写hashCode()以使其理解两个对象可被视为相等的原因。

http://javapapers.com/core-java/hashcode-and-equals-methods-override/