面试中被问到hashmap的rehash过程,有点搞晕了,rehash时get操作是怎么进行的? rehash过程中又有put操作 发生了什么? 可以帮忙解释一下吗?
面试中被问到hashmap的rehash过程,有点搞晕了,rehash时get操作是怎么进行的? rehash过程中又有put操作 发生了什么? 可以帮忙解释一下吗?
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
2 回答773 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读
在 HashMap (Java Platform SE 8) 文档中有提到
简单说 rehash 就是因为 HashMap 的空间不够用了,所以需要分配一个大一点的空间,然后保存在里面的内容需要重新计算 hash。
HashMap 不是线程安全的,所以在 rehash 的过程中又有 put 操作……完全不可预料会发生什么,有可能是很坏的事情,线程安全是个大问题。