有人告诉我,Hashtable在.NET使用中重复以减少/避免碰撞.
IE浏览器."Rehasing的工作原理如下:假设我们有一组散列不同的函数,H1 ... Hn,并且当从散列表中插入或检索项目时,最初使用H1散列函数.如果这导致碰撞,则尝试使用H2,然后再尝试Hn,以避免在Hashtable中发生碰撞."
假设:我们有一个哈希表,其中n(其中n <Infinity)元素的渐近时间复杂度为o(1); 我们(CLR)在应用一些散列函数(Hn-1散列函数,其中n> 1)时实现了这一点.
问题:当我们寻找(检索)任何元素时(如果使用了不同的散列函数),有人可以解释一下CLR map如何键入哈希码?CLR如何跟踪(如果是)任何活动对象(哈希表)的哈希函数?
提前致谢
下面的课有两种方法,其中M1抱怨'并非所有代码路径都返回一个值'而M2则没有.
问题:编译器如何在返回值的上下文中解析M2?如何将NotImplementedException实例隐式转换为int(如果有任何内部编译时间分辨率)
class A
{
int M1()
{
}
int M2()
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)