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