hashcode和equal的区别和联系
hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致。
区别:(从性能和可靠性来说)
1. equal()里的比较 是比较全面比较复杂,这样效率太低,而hashcode()只需要生成一个hash值进行比较就可以了,效率很高
2. hashcode()并不是完全可靠,有时候不同的对象生成的hashcode 也会一样,所以hashcode 大部分时候可靠,并不是绝对可靠。
结论: 如果两个对象的equals()相等,那hashCode就一定要相等,而hashCode相等,equals却不一定相等。