转载一些面试经典问题(个人觉得理解起来通俗易懂)!

170 阅读1分钟

1、# 重写equals不重写hashCode会怎样?

经典面试题:重写euqals()方法后为什么一定要重写hashcode()方法?

我觉得先理解,如果只重写euqals()方法后不重写hashcode()方法会怎样呢?再去理解为什么一定要重写hashcode()方法会更好。

重写equals不重写hashCode会怎样?

为何重写equals方法就得重写hashCode方法?

补充:关于hashcode的一些规定。

  • 两个对象相等,hashcode一定相等
  • 两个对象不等,hashcode不一定不等 (可能出现哈希冲突)
  • hashcode相等,两个对象不一定相等 (可能出现哈希冲突)
  • hashcode不等,两个对象一定不等