我说的是你的hashcode()方法 你还要知道你写这个方法的目的是什么,不就是用来覆盖object的hashcode方法来建立这个类的独特比较方法么,得到的hashcode当然是不一样的,object的hashcode是内存中的地址值,你当然不能用这个来比较学生,难道用new出来的学生对象在内存中的位置,来给他比大小么?显然不是,所以我们建立自己的hashcode方法去覆盖它,建立自己的规则去比较大小,他们两个人在地址用的位置不同,hashcode肯定是不同的,但是跟我们没关系,我们要的是他根据名字和年龄来比较大小的,这里只是借用了它名字的hasdcode ok?
一个是object的hashcode 一个是我们这个方法得到的hashcode
但是第二种才是我们想要的值,才是我们用来比较这个类的对象大小的依据。 |