我只知道hashmap和map的区别在于hashmap是用hash函数实现的,而map是用树实现的。还有人可以补充什么吗?

基于此,有什么东西是hashmap能做而map不能做的吗?

有帮助吗?

解决方案

  • 哈希图在平均情况下具有更好的访问性能 (O(1)),但在最坏情况下性能较差 (O(n))。映射始终为 O(lg(n))。

  • 映射按其键排序,而哈希映射则不然。

  • 哈希图通常比映射使用更多的内存。

  • 地图通常允许更快的迭代。

  • 好的哈希函数比好的排序函数更难编写(并且更难分析)。

我不相信有什么是哈希图可以做而地图做不到的。

其他提示

一个地图需要键具有严格弱序,这也许可能不存在。的hashmap只需要一个散列函数。因此,在这样一个HashMap可以与没有严格的弱序键来使用。

一个优点在于包含HashMap有超过树木的是,在多线程环境中,你不必锁定整个容器添加或删除单个键 - 锁定在哈希表中的单相关条目(几乎)就够了。

几乎因为可能存在元数据(在散列表项目的数量,例如)来更新。你可能需要锁定整个表当然要扩大或缩小它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top