课程
/后端开发
/Java
/Java入门第三季
新实例化的课程对象本来就不在courseToSelect集合中啊,contains方法当然会返回false,为什么非得重写equals方法让contains返回true呢?
2016-06-10
源自:Java入门第三季 6-1
正在回答
要看比较的目的了,是比较对象(引用)还是比较实际值了。
默认equals在比较俩个对象的时候,是看他们是否指向同一个地址的。
但有时候我们希望比较俩个对象的某些属性值是否相同,如果相同的话就认为他们的equals为true。
比如:
Student s1 = new Student(1,”name1”); Student s2 = new Student(1,”name1”);
如果用默认的equals比较s1和s2 的话,结果肯定为false,但是我们只是希望
比较他们的name是否相同,这个时候就需要重写equals方法了。
fenkapian 提问者
其实我感觉不用contains方法,直接用course2.name==name 这个方法还简单粗暴
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
3 回答为什么containskey()不用重写equals方法呢
4 回答为啥containsKey()方法不需要重写equals()方法????
2 回答重写equals方法
1 回答equals方法重写
4 回答为什么能在重写equals语句中用equals方法