求Java大神解答

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

qq_柒分醉_03927370

2016-10-09 21:30

为什么具有相同的ID和name的两个对象,course被包含在coursesToSelect里面,而course2却没包括在内呢?

写回答 关注

4回答

  • 慕粉3882300
    2017-01-17 13:32:26

    contains方法是基于equals方法实现的,equals方法的初始行为是比较对象的内存地 址,只有当对象的内存地址相同时,才能返回true值。(在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了)

  • taylorfeng
    2016-10-20 16:45:02

    当使用equals()的时候,对象指向地址必须相同才能返回true。course2虽然name和id与course一致,但是它是新创建的一个对象,所以存储地址不同不存在coursesToSelect中。而course本身就添加在coursesToSelect中的,所以当然是与coursesToSelect中的那个指向同一个对象的存储地址,所以返回true。

  • 精慕门6603618
    2016-10-10 23:13:15

    set接口的容器类中的元素是没有顺序的,但不能有重复

  • 太期待丶
    2016-10-10 08:33:41

    coursesToSelect如果是set集合的话  set是不能包含重复元素的

    太期待丶 回复qq_柒分醉...

    重写equals方法

    2016-10-11 21:02:31

    共 2 条回复 >

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题