Ale*_*man 28
它们将被添加到同一个存储桶中,equals()
并将用于区分它们.每个存储桶都可以包含具有相同哈希码的对象列表.
从理论上讲,您可以为给定类的任何对象返回与哈希代码相同的整数,但这意味着您将失去哈希映射的所有性能优势,并且实际上会将对象存储在列表中.
小智 7
在HashMap中,键及其关联值存储在存储桶中的链接列表节点中,并且基本上使用equals()方法而不是hashcode在hashmap中比较键.
hm.put("a","aValue"); // Suppose hashcode created for key "a" is 209
hm.put("b","bValue"); // Here hashcode created for key "b" is 209 as well.
Run Code Online (Sandbox Code Playgroud)
a.equals(b)
返回true
,bValue
将替换aValue
并将bValue
返回.a.equals(b)
回报false
,另一个节点将在遗愿清单创建,所以当你打电话get("b")
,你会得到bValue
,因为a.equals(b)
是false
. 归档时间: |
|
查看次数: |
27695 次 |
最近记录: |