C# C字典是否以与Java哈希映射相同的方式使用哈希?

C# C字典是否以与Java哈希映射相同的方式使用哈希?,c#,.net,dictionary,data-structures,hashmap,C#,.net,Dictionary,Data Structures,Hashmap,我知道Java HashMap元素是基于元素键的散列存储在bucket中的。在C字典中也会出现同样的哈希吗?如果没有,那么查找是如何工作的?在C System.Collections-namespace中有几种字典。他们使用不同的策略存储内部数据: 这个 使用DoubleLinkedList直到达到某个大小,然后切换到HashSet。normal始终在内部使用哈希集。还有一本词典可供同时使用——如果你愿意,你可以自己查一下 因此,这取决于您使用的字典类型,在上述情况下,由于性能或其他原因,您使用

我知道Java HashMap元素是基于元素键的散列存储在bucket中的。在C字典中也会出现同样的哈希吗?如果没有,那么查找是如何工作的?

在C System.Collections-namespace中有几种字典。他们使用不同的策略存储内部数据:

这个 使用DoubleLinkedList直到达到某个大小,然后切换到HashSet。normal始终在内部使用哈希集。还有一本词典可供同时使用——如果你愿意,你可以自己查一下


因此,这取决于您使用的字典类型,在上述情况下,由于性能或其他原因,您使用的类的内部考虑因素可能会发生变化。

C System.Collections-namespace中有几种字典。他们使用不同的策略存储内部数据:

这个 使用DoubleLinkedList直到达到某个大小,然后切换到HashSet。normal始终在内部使用哈希集。还有一本词典可供同时使用——如果你愿意,你可以自己查一下


因此,这取决于您使用的是哪种词典,在上述情况下,由于性能或其他原因,您使用的类的内部考虑因素可能会发生变化。

@maytham-ɯɥʇʎɐɯ词典与哈希表不同吗?是的,C词典的工作方式是相同的。bucket用于将散列空间分割成更小、更易于管理的块,并处理散列冲突。Bucket Number of Bucket是比字典容量大的第一个素数,因此,当您将第一项插入字典时,它将包含3个Bucket,并且每当需要增加容量时,这些项都会重新排列到新的Bucket中。您为什么要问,万一这是XY问题-?源代码可用;如果你想确切地知道它是如何工作的,请阅读源代码。@maytham-ɐɥʇʎɐɯ字典和哈希表有什么不同吗?是的,C字典的工作方式是相同的。bucket用于将散列空间分割成更小、更易于管理的块,并处理散列冲突。Bucket Number of Bucket是比字典容量大的第一个素数,因此,当您将第一项插入字典时,它将包含3个Bucket,并且每当需要增加容量时,这些项都会重新排列到新的Bucket中。您为什么要问,万一这是XY问题-?源代码可用;如果你想确切地知道它是如何工作的,请阅读资料来源。