重写equal要重写 hashCode的原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重写equal要重写 hashCode的原因相关的知识,希望对你有一定的参考价值。

public class Test {

public static void main(String[] args) {

Person person1 = new Person();
person1.setId("1");
person1.setName("qiumc");

Person person2 = new Person();
person2.setId("1");
person2.setName("qiumc");

Map<Person, String> hashMap = new HashMap<Person, String>();
hashMap.put(person1,"1");
hashMap.put(person2,"2");

System.out.println(hashMap.size());//重写hashCode 结果为1,否则为2

}


}


//Person类省略,只有两个属性,一个是name,一个id

以上是关于重写equal要重写 hashCode的原因的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中重写equals方法为啥要重写hashcode方法说明

JavaSE——为什么重写equals的同时一定要重写hashCode?

JavaSE——为什么重写equals的同时一定要重写hashCode?

JAVA中重写equals()方法为什么要重写hashcode()方法说明

面试官:重写 equals 时为什么一定要重写 hashCode?

面试官:重写 equals 时为什么一定要重写 hashCode?