码迷,mamicode.com
首页 > 其他好文 > 详细

equals()和hashcode()

时间:2016-02-16 16:41:22      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

默认调用的情况:

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

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

 

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

技术分享

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

 

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

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

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

同时还需要重写equals()

 

equals()和hashcode()

标签:

原文地址:http://www.cnblogs.com/straybirds/p/5154314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!