1,当想集合set中添加对象时,首先集合计算要增加对象的hashCode码,根据该值来得到一个位置用来存放当前对象,当在该位置没有一个对象存在的话,那么集合set认为该对象在集合中不存在,直接增加进入。如果在该位置上有一个对象存在的话,接着将准备增加到集合中的对象与该位置上的对象进行equals方法比较,如果该equals方法返回false,那么集合认为结合中不存在该对象,再进行一次散列,将该对象放到散列后计算出新地址里,如果equals方法返回true,那么集合认为集合中已经存在该对象,不会将该对象加入集合中了。
2,当重写equals方法时,必须要重写hashCode方法。如果一个类的两个对象,使用equals方法比较时,结果为true,那么该两个对象必须具有相同的hashCode