在 C# 中,Hashtable 类是一个哈希表实现,用于存储键值对。当 Hashtable 中的元素数量达到一定阈值时,哈希表会自动进行扩容以减少哈希冲突并提高性能。
Hashtable 的扩容过程是在添加新元素时触发的,当元素数量达到容量的 70% 时,会自动将容量扩大为当前容量的两倍,并重新计算所有元素的哈希码和位置。
在 Hashtable 中,可以通过以下代码示例来触发扩容过程:
Hashtable hashtable = new Hashtable();
for (int i = 0; i < 1000; i++)
{
hashtable.Add(i, i);
}
// Hashtable 在添加了 1000 个元素后会自动进行扩容
当 Hashtable 进行扩容时,会创建一个新的数组来存储元素,并将原有数组中的元素重新计算哈希码和位置后存储到新数组中。这个过程会导致一定的性能开销,因此在使用 Hashtable 时需要注意控制添加元素的频率,以避免频繁的扩容操作。