黑马程序员技术交流社区

标题: HashCode 小小问题小小问? [打印本页]

作者: 曾_强    时间: 2012-5-12 18:03
标题: HashCode 小小问题小小问?
个人觉得HashCode是集合类中的特殊存在,在用Hashtable、HashMap、HashSet、LinkedHashMap等时才要注意hashcode,但仍有个小问题。

如果覆盖了equals()方法的话,则必须要覆盖hashCode()方法。这是为什么?反之,如果是覆盖了hashCode()方法,可以不用覆盖equals()方法。这又是怎么判断的,有点晕。请指教。
作者: 黑马-王建雨    时间: 2012-5-13 00:33
因为元素(引用数据类型的)要存入MAP集合中时要先判断该元素的HashCode值是否相等,再通过判断equals方法判断元素内容是否相同。
若HashCode值不相等、不用再判断元素内容再是否相等、元素直接存入集合。
若HashCode值相等、然后内容再不相等的话,元素存入集合。
若HashCode值相等、然后内容再相等的话,元素不存入集合。因为map集合不允许重复元素存在。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2