课程
/后端开发
/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中你必须懂得常用技能,不容错过的精彩,快来加入吧
2 回答为什么返回值为-1
2 回答构造器的问题
1 回答老师讲的那三种输出的方法,在实际应用中怎么选取呢?都有些什么样的优势?
1 回答String[] spli(string regex,int limit)用法?
2 回答ChildCourse cr=new ChildCourse("7","大连"); 为什么不能这样给子类型课程对象实例
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号