1、如果equals两个对象相同,那么hashcode也必须相同。
2、hashcode相同,两个对象equals不一定相同。(可能发生散列碰撞)
为了提高效率才实现hashcode方法,先进行散列,如果不同,就没必要比较equals了。
因为做散列的速度远远快于equals。。
减少了equals的比较次数,提高效率。集合中就是这么使用的。例如HashMap
散列碰撞概率
http://www.freezhongzi.info/?p=100
1、如果equals两个对象相同,那么hashcode也必须相同。
2、hashcode相同,两个对象equals不一定相同。(可能发生散列碰撞)
为了提高效率才实现hashcode方法,先进行散列,如果不同,就没必要比较equals了。
因为做散列的速度远远快于equals。。
减少了equals的比较次数,提高效率。集合中就是这么使用的。例如HashMap
散列碰撞概率
http://www.freezhongzi.info/?p=100