【问题标题】:why hashcode based data structure use array to create bins?为什么基于哈希码的数据结构使用数组来创建 bin?
【发布时间】:2020-01-09 03:31:46
【问题描述】:

我正在阅读这里提出的问题的答案: Why does hashcode() returns an integer and not long?

我的问题是:为什么基于哈希码的数据结构使用数组来创建 bin?

【问题讨论】:

  • 由于 hashCode() 的主要用途是确定将对象插入到哪个槽中,因此数组被证明是具有恒定随机访问的最简单的“低级”数据结构。
  • 数组元素的索引访问是一个很小的常数成本:O(1),因此array[hashcode % array,length] 是理想的。一棵树需要 O(log n)

标签: data-structures hashmap hashset


【解决方案1】:

因为,数组是基于基于整数的索引!现在你可以表现出一些好奇心,为什么数组使用基于整数的索引。假设之一应该是——如果你能够使用其他类型(实数)而不是使用整数,那么想想你能添加多少维—— 例如——

for 1-th index, you could capable to add sub-indexes like -- 1.1, 1.2, 1.1.2, 1.1.1.1.2 and so on so forth! 

这样做会产生更多开销,而不是弹出我们想要的解决方案。

【讨论】:

    【解决方案2】:

    因为数组是允许随机访问其元素的低级数据结构。

    您需要一个“低级”数据结构来作为“高级”数据结构的基础。

    您需要随机访问,以便您可以非常快速地寻址垃圾箱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-26
      • 2016-10-31
      • 2015-03-05
      • 2015-10-06
      • 2011-07-30
      • 2020-11-17
      • 1970-01-01
      • 2011-09-18
      相关资源
      最近更新 更多