C#字典是否以与Java HashMaps相同的方式使用散列?

时间:2017-12-10 20:08:41

标签: c# .net dictionary data-structures hashmap

我知道Java HashMap元素存储在" buckets"基于元素的散列'键。 C#字典中是否会出现相同的散列?如果没有,那么查找是如何工作的?

1 个答案:

答案 0 :(得分:4)

C#System.Collections里面有几种Dictionarys - 命名空间。他们使用不同的策略来存储内部数据:

这一个System.Collections.Specialized.HybridDictionary 使用DoubleLinkedLists直到达到特定大小,然后切换到Hashsets。 “普通”System.Collections.Generics-Dictionary始终在内部使用Hashsets。还有一个用于并发使用的词典 - 如果你愿意,可以自己查找(Concurrent Dictionary)。

因此,这取决于您使用的字典类型(在上述情况下)可能会因为出于性能或其他原因而使用的类的内部注意事项而发生变化。