黑马程序员技术交流社区
标题:
什么情况下重写hashCode和equals方法?
[打印本页]
作者:
李铁
时间:
2012-10-23 22:48
标题:
什么情况下重写hashCode和equals方法?
本帖最后由 李铁 于 2012-10-24 11:55 编辑
hashCode相等,对象调用equals()一定相等嘛?
作者:
林志进
时间:
2012-10-23 23:22
肯定不一样啦。equals方法是继承于object类,默认为==,判断两个对象是否相等,当然有些类像String这样重写过equals方法的类除外了。
hashcode:主要应用在hashmap和hashtree,hashtable集合框架里面。这些集合类底层都是哈希数据结构,这些集合框架不允许有相同对象存入。那么如何判断是否是同个对象呢:这些集合类先通过比较对象自身的hashcoe方法,如果是否再比较equals方法,再为否就可以判断是两个对象了,就可以存入了。我们实际使用的时候肯定不能单纯都通过==来比较是否是同一事物,所以要重写这两个方法来满足现实需求。因能力有限,可能回答的不到位。详细你可以参考有关集合框架的视频教材,讲的比较深入。
作者:
给生活加点料
时间:
2012-10-23 23:35
为了保证对象的唯一性,一般需要重写HashCode equals方法。
作者:
汪小照
时间:
2012-10-23 23:39
在使用HashSet或HashMap集合时,如果你想让相同的对象(指的是对象中的内容,而不是引用)存不进这样的集合,则就需要重写hashCode和equals方法。
作者:
李润根
时间:
2012-10-23 23:42
创建类的时候,一般都需要重写,因为以后可能用到
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2