问答详情
源自:6-1 学生选课---判断 List 中课程是否存在

关于list contains方法

既然 contains方法的原理是遍历每一个元素equals(传入的值),equals比较的不就是两个对象的内容不管内存的起始位置相不相同。为何还需要重写 equals 方法 。比较的是 两者的内容 为何运行后 返回的 是false值。在重写的 方法中  this.name.equals.((Course) obj);  这里的 equals 是重写的还是没重写的?

提问者:toCurrent 2016-03-24 22:41

个回答

  • SephirothLT
    2016-06-04 11:54:24

    equals比较的是两个对象是否相等,类似于(==)的作用,但是很多时候需要比较的是里面的内容而非地址,所以父类不能满足要求,所以要进行重写。

  • didi1234
    2016-04-07 11:09:43

    equals()方法的本意是比较两个对象的引用是否相同,也就是比较两个对象的地址,不是两个对象的内容。

  • 卷毛卷毛卷
    2016-03-25 13:21:13

    个人看法,有不对的地方请指出:

    1.没有重写equals之前,比较的是两个对象的地址,重写之后比较的是内容。

    2.重写方法中用的是重写之后的equals