课程
/后端开发
/Java
/Java入门第三季
老师最后讲的好快啊,为什么上一节不用重写hashCode方法,这一节就需要了呢?
2014-10-30
源自:Java入门第三季 6-2
正在回答
详细的可以去看HashMap的contains实现,那里是equals和hashCode两个同时使用了,所以在有Map的时候,必须两个都要验证。HashSet也验证两个。但是在ArrayList里不验证hashCode,所以你不重写hashCode也无所谓。
equals和hashcode方法要同时重写,并且要在equals为true的时候,hashCode必须要相同。这个已经是一种不成文的规定了,这两个方法要重写就要一起重写,而且IDE里也会将只重写一个视为警告。所以这两个方法要同时重写。
哥呀两节讲的都不是一个内容的,上一节是list,这节是set,能一样吗。。。视频中也讲到了,为什么要重写hashCode,请哥再仔细看下视频讲解
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
1 回答在Course类中定义name和id用的是private
4 回答答案貌似不对啊
2 回答线程安全与不安全问题
3 回答答案有问题吧
2 回答真没看懂!
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号