Hashtable和Hashmap的冲突分辨率是相同还是不同?

时间:2019-04-09 19:54:45

标签: java data-structures hashmap hashtable

我了解hashmap就像hashtable的改进版本一样,因此它们并不完全相同。那么,哈希映射与哈希表的冲突解决方案是否相同?如果是,怎么办?

编辑,因为有人说它太宽泛:如果有人要求“哈希表的冲突解决方案”,我可以对“哈希表的冲突解决方案”使用相同的答案吗?我知道线性探测和分离链接是两种常见的冲突解决技术;这些技术对哈希表和哈希表的作用不同吗?

我在网上看过,但是当人们谈论冲突解决时,他们似乎交替使用“ hashmap”和“ hashtable”这两个词,但是我认为hashmap和hashtable是不同的。

1 个答案:

答案 0 :(得分:0)

摘自HashTable的文档:

  

请注意,哈希表是打开的:如果发生“哈希冲突”,则单个存储桶会存储多个条目,这些条目必须按顺序进行搜索

,对于HashMap,虽然未在公共API中进行记录,因此可以在以后的版本中进行更改,但从Java 8开始,用于保持垃圾箱避免冲突的策略是保持平衡的树(本质上是RB树)这是一个平衡的Binary Search Tree),因此可以在对数时间复杂度下在bin(发生冲突)中进行搜索。 (本质上,只有当碰撞次数超过阈值时,它才是平衡树。)

This可能很有趣。 :)