fenkapian
2016-06-10 22:20
新实例化的课程对象本来就不在courseToSelect集合中啊,contains方法当然会返回false,为什么非得重写equals方法让contains返回true呢?
要看比较的目的了,是比较对象(引用)还是比较实际值了。
默认equals在比较俩个对象的时候,是看他们是否指向同一个地址的。
但有时候我们希望比较俩个对象的某些属性值是否相同,如果相同的话就认为他们的equals为true。
比如:
Student s1 = new Student(1,”name1”); Student s2 = new Student(1,”name1”);
如果用默认的equals比较s1和s2 的话,结果肯定为false,但是我们只是希望
比较他们的name是否相同,这个时候就需要重写equals方法了。
其实我感觉不用contains方法,直接用course2.name==name 这个方法还简单粗暴
Java入门第三季
409792 学习 · 4340 问题
相似问题
回答 2
回答 1