11问答网
所有问题
当前搜索:
equals hashcode
equals
和
hashcode
的区别,hashcode的作用
答:
equals
():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。
hashCode
():计算出对象实例的
哈希码
,并返回哈希码,又称为散列函数。根类Object的hashCode()方法的计算依赖于对象实例的D(内存地址),故每个Object对象的hashCode都是唯一的;当然,当对象所...
equals
方法比较的是两个对象的
哈希码
,这么说对吗?
答:
没有绝对的对错,如果你重装
equals
方法,让他去比较两个对象的
哈希码
来决定两个对象是否相同的话,那这么说就是对的了。否则的话是不能这么说的。equals在原则上要和
hashcode
保持一致,即equals为真 两个对象hashcode应相同。你之所以产生这个想法我想估计就这这样造成的。两个方法结果的一致性让你误以为...
为什么覆写
equals
的时候一定要覆写
hashCode
答:
hashCode
是编译器为不同对象产生的不同整数,根据
equal
方法的定义:如果两个对象是相等(equal)的,那么两个对象调用 hashCode必须产生相同的整数结果,即:equal为true,hashCode必须为true,equal为false,hashCode也必须 为false,所以必须重写hashCode来保证与equal同步。 class Student { int num;String name;Student(int num...
...x.
equals
(y) == true),但却可有不同的
hash code
,这句话对不对...
答:
【答案】:对。如果对象要保存在HashSet 或HashMap 中,它们的
equals
相等,那么,它们的
hashcode
值 就必须相等。如果不是要保存在HashSet 或HashMap,则与hashcode 没有什么关系了,这时候hashcode 不等是可以的,例如arrayList 存储的对象就不用实现hashcode,当然,我们没有理由不实 现,通常都会去实...
JAVA中重写
equals
方法为什么要重写
hashcode
方法说明
答:
重写
hashCode
()时最重要的原因就是:无论何时,对同一个对象调用hashCode()都应该生成同样的值。如果在将一个对象用put()方法添 加进HashMap时产生一个hashCode()值,而用get()取出时却产生了另外一个 hashCode()值,那么就无法重新取得该对象了。所以,如果你的hashCode()方法依赖于对象中易变的数据,那用户就要小...
java 中
equals
() 相等的两个对象,
hashcode
() 一定相等
答:
在java中,
equals
和
hashcode
是有设计要求的,equals相等,则hashcode一定相等,反之则不然。为何会有这样的要求?在集合中,比如HashSet中,要求放入的对象不能重复,怎么判定呢?首先会调用hashcode,如果hashcode相等,则继续调用equals,也相等,则认为重复。如果重写equals后,如果不重写hashcode,则hashcode就...
hashcode
和
equals
的关系是什么?
答:
hashcode
和
equals
的关系如下:1、如果两个对象equals相等,那么这两个对象的
HashCode
一定也相同。2、在重写了equals方法后,尽量也重写了hashcode方法,通过一定的算法,使他们在equals相等时,也会有相同的hashcode值。3、hashcode就是在hash表中对应的位置。hashcode和equals的特点 hashcode代表对象的地址说的...
java中重写
equals
方法为什么要重写
hashcode
方法说明
答:
1、重写
equals
方法时需要重写
hashCode
方法,主要是针对Map、Set等集合类型的使用;a: Map、Set等集合类型存放的对象必须是唯一的;b: 集合类判断两个对象是否相等,是先判断equals是否相等,如果equals返回TRUE,还要再判断
HashCode
返回值是否ture,只有两者都返回ture,才认为该两个对象是相等的。2、由于Object...
equals
为什么要重写
hashcode
?
答:
如果你重载了
equals
,比如说是基于对象的内容实现的,而保留
hashCode
的实现不变,那么很可能某两个对象明明是“相等”,而hashCode却不一样。这样,当你用其中的一个作为键保存到hashMap、hasoTable或hashSet中,再以“相等的”找另一个作为键值去查找他们的时候,则根本找不到。如果两个对象的堆内存...
为什么在重写了
equals
()方法之后也必须重写
hashCode
()方法
答:
因为如果不这样做的话,就会违反Object.
hashCode
的通用约定,从而导致该类无法结合所有基于散列的集合一起正常运作,这样的集合包括HashMap、HashSet和Hashtable。另外在应用程序的执行期间,只要对象的
equals
方法的比较操作所用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法都必须始终如一地...
1
2
3
4
5
6
7
8
9
10
下一页
尾页
其他人还搜
hashcode是干嘛的
hashcode()方法
java hashcode equals
字符串hashcode
接口定义 hashcode
hashCode和equals方法的关系
equals与hashcode的关系
如何获取hashcode
重写equals和hashcode