检测哈希表或字典中的重新哈希或冲突

本文关键字:新哈希 冲突 哈希表 字典 检测 | 更新日期: 2023-09-27 18:35:24

我正在研究.NET Hashtable类,并想尝试各个方面...

  • 给定数据集中发生了多少次冲突(重新哈希)
  • 哈希表的扩展对于多线程访问是否安全?
  • 我的哈希表的当前负载系数是多少?

如何试验或学习有关给定哈希表或字典的上述信息

检测哈希表或字典中的重新哈希或冲突

MSDN 中说明了Hashtable的线程安全性。如果只有一个线程写入Hashtable,这是线程安全的,这必须包括扩展。

现在,使用反射器进行一些挖掘:

荷载系数存储在loadFactor私有字段中,如果要检查其值,可以使用反射访问该字段。

重述更难。这些不是Hashtable的内部状态,可以通过重新哈希以可检测的方式进行修改,并且只能通过重新哈希进行修改。因此,您必须在此处查看其他选项,例如使用 Reflector 创建您自己的相同 Hashtable 实现,然后添加一些代码来计算重新哈希。如果您这样做,您不妨将负载系数也公开为属性,以使您的生活更轻松。