MK.*_*MK. 2 java equals hashcode
在什么情况下给出hashCode和equals()的正确实现,以下代码可以返回false?
myLinkedHashMap.containsKey(myLinkedHashMap.keySet().iterator().next())
Run Code Online (Sandbox Code Playgroud)
我可以想到的最有可能的情况即使hashCode是"确定性的",它可能基于可变字段.如果您hashCode在放入之后更改用于计算的字段Map,那么您将无法再找到它.
编辑:应该澄清你'通常'将无法再找到它.偶尔它仍然可以工作,因为两个数字仍然可以重新进入相同的存储桶.当然,这只会在发生时增加混乱!
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |