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

Course 重写equals

重写了 Course类的 equals 方法后   为什么SetTest中没做任何修改    结果却发生了改变?

提问者:qq_早点_1 2019-06-06 18:36

个回答

  • Pikachu2016
    2019-08-13 12:49:58

    因为调用了contains()方法,而该方法的原理就是调用equals()方法,也就是调用contains()方法就相当于调用了equals()方法

  • qq_慕设计308330
    2019-07-06 11:46:27

    为什么一个自定义的类会有默认equals方法呢?是每个类都有吗

  • Georgephy
    2019-06-17 15:04:07

    首先要明白List中contains方法实现原理是,遍历每个List中的元素(Course),调用这些元素(Course)的equals方法和入参的对象进行比较,如果有一个返回真则这个contains方法返回真。

    那么你只需要在Course中重写equals方法即可,因为contains这个方法原理就是调用每一个元素(Course)的equals方法,所以在SetTest中不用做修改