课程
/后端开发
/Java
/Java入门第三季
为什么具有相同的ID和name的两个对象,course被包含在coursesToSelect里面,而course2却没包括在内呢?
2016-10-09
源自:Java入门第三季 6-1
正在回答
contains方法是基于equals方法实现的,equals方法的初始行为是比较对象的内存地 址,只有当对象的内存地址相同时,才能返回true值。(在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了)
当使用equals()的时候,对象指向地址必须相同才能返回true。course2虽然name和id与course一致,但是它是新创建的一个对象,所以存储地址不同不存在coursesToSelect中。而course本身就添加在coursesToSelect中的,所以当然是与coursesToSelect中的那个指向同一个对象的存储地址,所以返回true。
set接口的容器类中的元素是没有顺序的,但不能有重复
coursesToSelect如果是set集合的话 set是不能包含重复元素的
qq_柒分醉_03927370 提问者
太期待丶 回复 qq_柒分醉_03927370 提问者
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
2 回答求大神解答
2 回答求解答!!大神
2 回答求大神解答!
5 回答求大神解答!!!