在 C# 中,Hashtable 類是一個哈希表實現(xiàn),用于存儲鍵值對。當 Hashtable 中的元素數(shù)量達到一定閾值時,哈希表會自動進行擴容以減少哈希沖突并提高性能。
Hashtable 的擴容過程是在添加新元素時觸發(fā)的,當元素數(shù)量達到容量的 70% 時,會自動將容量擴大為當前容量的兩倍,并重新計算所有元素的哈希碼和位置。
在 Hashtable 中,可以通過以下代碼示例來觸發(fā)擴容過程:
Hashtable hashtable = new Hashtable();
for (int i = 0; i < 1000; i++)
{
hashtable.Add(i, i);
}
// Hashtable 在添加了 1000 個元素后會自動進行擴容
當 Hashtable 進行擴容時,會創(chuàng)建一個新的數(shù)組來存儲元素,并將原有數(shù)組中的元素重新計算哈希碼和位置后存儲到新數(shù)組中。這個過程會導致一定的性能開銷,因此在使用 Hashtable 時需要注意控制添加元素的頻率,以避免頻繁的擴容操作。