【问题标题】:Hashtable Keys and producing the same values哈希表键并产生相同的值
【发布时间】:2017-09-06 06:24:44
【问题描述】:

我正在尝试了解哈希表的工作原理。在这个例子中,我可以清楚地看到这个哈希表包含包含完全相同值的键。显然这有效,但我试图理解为什么?说散列函数只是指向不同的内存位置是否正确,所有这些位置都巧合地包含相同的二进制文件?我似乎无法在搜索中找到正确的答案..

        Hashtable h = new Hashtable();
        h.Add(1, "lol");
        h.Add(2, "lol");
        h.Add(3, "lol");

【问题讨论】:

  • 哈希表或字典是将特定键链接到值的数据结构。键很重要,值不重要,值只是为键存储的。它之所以有效,是因为这是字典的重点。为什么你认为它不应该?

标签: c# hashtable


【解决方案1】:

Add 方法接受键,然后接受值。尝试切换参数,看看会发生什么。你会得到一个ArgumentException,因为只允许唯一的键,

另见文档https://msdn.microsoft.com/en-us/library/system.collections.hashtable.add(v=vs.110).aspx

【讨论】:

  • 是的,但是如果我想要两个具有相同值的密钥对怎么办?也许我的“钥匙”山姆和亚历克斯碰巧有相同的密码,“123abc”。所以我的两个密钥对是 。有什么问题吗?
  • 正如您的示例所证明的那样,这是完全可以接受的。键是 1、2 和 3,具有相同的值“lol”。
猜你喜欢
  • 2013-02-24
  • 2021-04-11
  • 2018-06-10
  • 1970-01-01
  • 2020-11-16
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多