重写equal方法为什么要重写hashCOde方法

hashcode返回的是数据在内存中的地址

equal:方法是比较两个数的值

hash冲突:两个不同的变量hashcode相同

  public static void main(String[] args) {
        String a="ok";
        String b =new String("ok");
        System.out.println(a==b);

        System.out.println(a.hashCode());
        System.out.println(b.hashCode());

false
3548
3548

.因此再重写equal方法时如果不重写hashcode方法就要挨个比较。如果重写了hashcode方法那么就只用比较hashcode相同的这条链上的值就可以。  

你可能感兴趣的:(java,servlet,开发语言)