题目
下面论述正确的是()?
A.如果两个对象的hashcode相同,那么它们作为同一个HashMap的key时,必然返回同样的值
B.如果a,b的hashcode相同,那么a.equals(b)必须返回true
C.对于一个类,其所有对象的hashcode必须不同
D.如果a.equals(b)返回true,那么a,b两个对象的hashcode必须相同
下面论述正确的是()?
A.如果两个对象的hashcode相同,那么它们作为同一个HashMap的key时,必然返回同样的值
B.如果a,b的hashcode相同,那么a.equals(b)必须返回true
C.对于一个类,其所有对象的hashcode必须不同
D.如果a.equals(b)返回true,那么a,b两个对象的hashcode必须相同
放弃不难,但坚持一定很酷,加油,奥里给!
整个看下来还是感觉迷迷糊糊的
这么久了终于弄明白这个问题
D选项有问题。。。如果两个对象都是new出来的,但是两个对象的equal相等,这两个对象的hashcode难道相等吗???这个题全错。A,B一样,。。hashcode相等并不能说明值相等。C就更胡说了,如果是常量。比方说i=j=1;那么i.j的hashcode一样。。
如果equal方法被重写呢
存放的键值对,如果放入不同的值,则会将原来的值替换掉,所以只会存放相同的值,但是反过来就不一定了。
应该说的是Object,没有override equals方法
D 如果是string的话,两个字符串对象相等,hashcode也不一样吧?