默认调用的情况:

1.集合在存放对象时,首先判断hashcode(),再判断equals如果都是true,认为是相同的两个元素不进行存储。

   删除对象时,将从hashcode指定位置查找再删除

 

2.在hashSet集合中的对象如果改变了对象的hashCode值将导致无法查找到以及无法删除集合中的对象,可能导致内存泄漏;

equals()和hashcode()

因此以对象hashcode值作为定位的方式需要特别注意;

 

3.对象的hashcode值必须满足一致性:即多次调用其值用来定位的时候都必须相同(比如对象存放和查找的时候)

4.相同对象的hashcode是相等的;

重写hashcode的场景:
当需要认为多个对象某些值相同就是同一个对象的时候;譬如多个对象有些认为是相同的存放到集合中要排除掉

同时还需要重写equals()

 

相关文章:

  • 2021-09-13
  • 2021-08-10
  • 2021-05-23
  • 2021-10-01
  • 2021-12-16
  • 2022-12-23
  • 2021-07-08
  • 2021-05-04
猜你喜欢
  • 2021-11-12
  • 2022-01-26
  • 2021-09-21
  • 2021-09-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案