如果我有100个项目存储在字典中,我应该如此初始化它吗?
var myDictionary = new Dictionary<Key, Value>(100);
Run Code Online (Sandbox Code Playgroud)
我的理解是.NET字典在达到给定加载时在内部自行调整大小,并且加载阈值被定义为容量的比率.
这表明如果在上面的字典中添加了100个项目,那么当添加其中一个项目时它会自行调整大小.调整字典大小是我想要避免的,因为它会影响性能并浪费内存.
散列碰撞的概率与字典中的加载成比例.因此,即使字典没有自己调整大小(并使用其所有插槽),性能也必须因这些冲突而降低.
假设您知道字典中有多少项,那么应该如何最好地决定将字典初始化的能力?