基础面试题
FreeL00P

hashcode 与 equals

hashcode()在Object.java()中,hashcode的作用是计算对象的hash值,得到一个hash码,这个哈希码的作用是在哈希表中确定对象存储的位置,快速找到对象;

  1. 如果两个对象相等,那么它们的hashcode也一定相等
  2. 两个对象相等,equals也相等;
  3. 两个对象的hashcode值相同,它们不一定相等,因为不同的值也可能计算出一个相同的hashcode;所以重写的equals,一定要重写hashcode;

为什么要有hashcode

hashset检查重复元素的时候最先检查的是hashcode值,如果hashcode一样才会去进行equals操作,如果不同就放入hashset的其他位置,大大的减少了equals的次数;提高了效率。