coursesToSelect.contains(course2)

来源:6-1 学生选课---判断 List 中课程是否存在

慕粉1123522907

2019-01-28 08:16

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

写回答 关注

1回答

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

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

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

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

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


    jorry 回复慕尼诗

    字符串实现的equals()先判断对象是否为同一个,还判断了字符串内容是否一样,请看源码,在这里指的就是字符串实际内容。

    2019-06-21 22:58:04

    共 2 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题