1
我正在研究哈希表,我有一个疑问,在这个问题中我们必须计算使用的数据桶的数量(主要和溢出)。计算哈希表中使用的数据桶的数量
这是一个线性哈希表,其中i = 3(使用的位数),并且如果使用的最大桶地址(以位为单位)='110'并且有2个溢出桶被使用。
计算哈希表存储桶计数的逻辑是什么?
你能否解释一下公式或者请提供一些与此相关的链接。
在此先感谢!
我正在研究哈希表,我有一个疑问,在这个问题中我们必须计算使用的数据桶的数量(主要和溢出)。计算哈希表中使用的数据桶的数量
这是一个线性哈希表,其中i = 3(使用的位数),并且如果使用的最大桶地址(以位为单位)='110'并且有2个溢出桶被使用。
计算哈希表存储桶计数的逻辑是什么?
你能否解释一下公式或者请提供一些与此相关的链接。
在此先感谢!
如果您正在使用Java提供那么你可以使用hashtable.size()实现类,但如果你仍然想如果areusing您的自定义实现,那么
private Entry<K,V>[] table; //Array of Entry.
private int capacity= 16; //Initial capacity of Hashmap
int count = 0;
for(int i=0;i<capacity;i++){
if(table[i]!=null){
Entry<K, V> entry=table[i];
while(entry!=null){
count++;
entry=entry.next;
}
}
}
Syso(count);
自己算吧,然后
Iterator i = hashTable.entrySet().iterator();
int count = 0;
while(i.hasNext())
{
count++;
i.next();
}
System.out.println(count);
在这里,我没有考虑同步这是在hashtable的情况下必不可少的。
这是一个关于fundementals的有趣问题,请将问题改述为一个实际问题,例如“什么是哈希表存储桶计数的计算逻辑” – Tschallacka
完成后感谢您的好意。..我第一次来这里stackoverflow ..我仍然在学习:D – Anish
你是在谈论包括碰撞的桶的总数,这将是hashtable.size()或上次使用的桶让我们说15个桶(填充)的大小为16(0到15)? – skY