40道Java基础常见面试题及详细答案
hashCode()只是简朴示例写的,真正的出产换将不是这样的 |
hashCode的存在首要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储布局中确定工具的存储地点的。
假如两个工具沟通,就是合用于equals(java.lang.Object) 要领,那么这两个工具的hashCode必然要沟通。
假如工具的equals要领被重写,那么工具的hashCode也只管重写,而且发生hashCode行使的工具,必然要和equals要领中行使的同等,不然就会违背上面提到的第2点。
两个工具的hashCode沟通,并不必然暗示两个工具就沟通,也就是不必然合用于equals(java.lang.Object) 要领,只可以或许声名这两个工具在散列存储布局中,如Hashtable,他们“存放在统一个篮子里”。
什么时辰必要重写?
一样平常的处所不必要重载hashCode,只有当类必要放在HashTable、HashMap、HashSet等等hash布局的集适时才会重载hashCode,那么为什么要重载hashCode呢?
要较量两个类的内容属性值,是否沟通时辰,按照hashCode 重写法则,重写类的 指定字段的hashCode(),equals()要领。
譬喻
?
?
??
??
?
??
?
?
??
?
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!