有什么事情是 hashmap 能做而 map 不能做的吗?
-
23-09-2019 - |
题
我只知道hashmap和map的区别在于hashmap是用hash函数实现的,而map是用树实现的。还有人可以补充什么吗?
基于此,有什么东西是hashmap能做而map不能做的吗?
解决方案
哈希图在平均情况下具有更好的访问性能 (O(1)),但在最坏情况下性能较差 (O(n))。映射始终为 O(lg(n))。
映射按其键排序,而哈希映射则不然。
哈希图通常比映射使用更多的内存。
地图通常允许更快的迭代。
好的哈希函数比好的排序函数更难编写(并且更难分析)。
我不相信有什么是哈希图可以做而地图做不到的。
其他提示
一个地图需要键具有严格弱序,这也许可能不存在。的hashmap只需要一个散列函数。因此,在这样一个HashMap可以与没有严格的弱序键来使用。
一个优点在于包含HashMap有超过树木的是,在多线程环境中,你不必锁定整个容器添加或删除单个键 - 锁定在哈希表中的单相关条目(几乎)就够了。
几乎因为可能存在元数据(在散列表项目的数量,例如)来更新。你可能需要锁定整个表当然要扩大或缩小它。
不隶属于 StackOverflow