java - HashMap put 性能

标签 java hash hashmap hashcode yourkit

我对一些 yourkit 快照感到困惑,这似乎表明在特定堆栈中 hashmap.put() 被证明是昂贵的。

假设这个映射的键是一个非常复杂的对象,它没有重写 equals()hashCode()

HashMap.hash()Object.hashCode() 在某些情况下真的可能代价高昂吗?

最佳答案

理论上有可能,但可能性很小。

如果您确实使用Object.hashcode(),则委托(delegate)给相对便宜的System.identityHashCode(Object)。此外,身份哈希码不应该给你碰撞热点......除非你真的很不幸。

如果您在 HashMap.hash()Object.hashCode() 中看到性能热点,那么原因可能是您只是做了很多事情HashMap 查找。

关于java - HashMap put 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18021309/

相关文章:

java - Hashmap 使用哪个键和值来搜索姓名和电话号码

java - 在 Java 中反射 map

java - 当没有更多行可读取时扫描仪停止

python - 在 Python 中计算对象的哈希值

java - 返回添加到 List<Object> 的 HashMap

c++ - 自定义 C++ ASP .NET 成员(member)登录

java - 按位与在 Java 哈希表哈希查找中?

java - 从密码生成 key 对

java - Spring - validator 不会在集成测试中触发

Java JFrame访问进度条