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

coursesToSelect.contains(course2)

对第一次比较有疑问。
contains方法相当于遍历List进行equals比较,如果是String类型,比较的是内容而不是地址,为什么这里Course类型的equals比较的内容相同,contains返回值为false呢?

提问者:慕粉1123522907 2019-01-28 08:16

个回答

  • 慕无忌8377531
    2019-01-28 10:18:23
    已采纳

    对于equals方法,注意:equals方法不能作用于基本数据类型的变量

        如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

        诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

    而contains中的元素比较的应该是obj类型的,系统并没有重写equals方法,比较的是地址值