C# 中的 Dictionary 類是一個泛型集合,它提供了鍵值對的存儲和訪問功能
int initialCapacity = 10;
Dictionary<int, string> dictionary = new Dictionary<int, string>(initialCapacity);
負載因子:負載因子是指當前 Dictionary 中元素數量與其容量的比值。當負載因子超過一定閾值(通常為 0.72)時,Dictionary 會自動擴容。擴容時,新的容量通常是當前容量的 2 倍。這種策略有助于保持 Dictionary 的性能,同時避免了因為過小的容量而導致的頻繁擴容。
縮容:在某些情況下,當 Dictionary 中的元素數量顯著減少時,可以考慮手動縮容以釋放內存。但需要注意的是,C# 的 Dictionary 類并沒有提供直接的縮容方法。你可以通過創建一個新的 Dictionary 并將原 Dictionary 中的元素復制到新的 Dictionary 中來實現縮容。
Dictionary<int, string> newDictionary = new Dictionary<int, string>(originalDictionary.Count);
foreach (var item in originalDictionary)
{
newDictionary.Add(item.Key, item.Value);
}
originalDictionary = newDictionary;
總之,C# 的 Dictionary 類使用了動態擴容和負載因子等策略來管理其容量,以在性能和內存使用之間取得平衡。在實際應用中,你可以根據需求合理設置初始容量,以及在必要時手動縮容,以優化 Dictionary 的性能和內存使用。