问题标签 [hashtable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
485 浏览

algorithm - 哈希函数输出是否需要小于桶数?

我正在阅读有关此人“在一家知名搜索公司”的采访。

http://asserttrue.blogspot.com/2009/05/one-of-toughest-job-interview-questions.html

他被问到一个导致他实现哈希表的问题。他说:

我解释了哈希表数组长度应该是素数,并且 BOUNDS 数小于表长度,但与表长度互质。

为什么 BOUNDS 数应该小于桶数?与桌子长度互质有什么作用?它不应该与 BOUNDS 互质吗?

0 投票
4 回答
18242 浏览

.net - 使用带有字符串键和不区分大小写的搜索的哈希表/字典

想知道这是否可能。

我们有一个第 3 方库,其中包含有关用户的识别信息......

与库的主要交互是通过一个以字符串为键的 HashTable,并返回该键的信息对象图。

问题是,密钥显然是区分大小写的,但我们从用户浏览器获得的不一定与大小写匹配......(我们经常得到完全小写的密钥)

我想知道是否可以对哈希表进行不区分大小写的键搜索。

例如

如果我们可以向公司提交支持票以添加此功能,是否有任何其他 DataStructures(即新的通用集合/字典)支持此功能

最后,是否可以覆盖 System.String GetHashCode() 方法,以使所有大小写不变的字符串返回相同的哈希码...例如,我认为这是一个禁止string使用的密封类

如果有人有任何建议,请欢呼

0 投票
3 回答
282 浏览

c# - 从 Hashtable 复制 nk/v 对

我有一个包含 n 条记录的哈希表。我需要复制 x 和 y 之间的记录并遍历它们。

我该怎么做?

例子:

HT1.Count = 500;

HT2 = HT1[0] - HT1[100];

- 编辑 -

请注意,这样做的原因是我正在从 .MSG 文件生成 PDF。最终用户出现的问题是,当他们获得 12GB PDF 时会导致问题:P

我需要将 PDF 分解为 250 条消息,然后开始一个新的 PDF。所以顺序并不重要,每次返回相同的记录也不重要,因为它只会执行一次。

0 投票
6 回答
21866 浏览

hashtable - 哈希表的大 O 与二叉搜索树

哪个需要更长的时间?

按排序顺序打印存储在二叉搜索树中的所有项目或按排序顺序打印存储在哈希表中的所有项目。

将哈希表的项目按排序顺序打印出来需要更长的时间,因为哈希表永远不会正确排序?BST 是什么?

0 投票
7 回答
25300 浏览

hashtable - 在哈希表或排序列表中查找项目哪个更快?

在哈希表或排序列表中查找项目哪个更快?

0 投票
2 回答
566 浏览

data-structures - 使用 VList 的哈希表

Phil Bagwell 在他2002 年关于 VList 数据结构的论文中指出,您可以使用 VList 来实现持久哈希表。然而,他对它如何工作的解释并没有包含太多细节,我也不明白。谁能给我更详细的解释,甚至是例子?

此外,在我看来,这种数据结构虽然可能具有与 Hashtable 相同的 big-O 复杂性,但会更慢,因为它会进行额外的查找。是否有人愿意详细分析慢了多少,最好包括缓存行为?在没有碰撞或碰撞很多的情况下,两者的性能关系如何变化?

0 投票
3 回答
786 浏览

c# - c# 中枚举的数据结构,其中查找通常基于所存储对象的一个​​属性

我想知道人们会推荐什么数据结构来执行以下操作。我有一个具有三个主要属性的类,例如。

另一个类包含这些对象的集合,并且经常需要枚举这些对象,我主要使用 LINQ。很多时候,虽然我只需要主要基于属性 One 的值来查找/枚举这些对象的子集,所以我想做的是将这些对象存储在基于该属性的有效数据结构中。我可以执行以下操作:

但这让我觉得效率很低,我知道我需要某种哈希表,但以前从未在 C# 中使用过,我不确定有什么用。

其他一些要求/注意事项:

  • 所有对象都是不可变的,并且具有固定的哈希码,这些哈希码是根据类在构造函数中实例化的值计算得出的
  • 必须能够在数据结构的同一个“槽”中存储多个具有相同值(以及因此哈希码)的属性 One 的项目
  • 必须能够从集合中自由添加和删除对象
0 投票
7 回答
2383 浏览

c# - .net 使用什么哈希算法?爪哇呢?

关于 HashTable(以及此类的后续衍生物),有人知道 .net 和 Java 使用什么散列算法吗?

List 和 Dictionary 都是 Hashtable 的直接降级吗?

0 投票
7 回答
8642 浏览

c - 流行语言内部如何实现哈希表?

有人可以解释一下 Python、Ruby 等流行语言如何在内部实现哈希表以进行符号查找吗?他们是使用经典的“带有链表的数组”方法,还是使用平衡树?

我需要一种简单(更少的 LOC)和快速的方法来索引用 C 编写的 DSL 中的符号。想知道其他人发现什么最有效和实用。

0 投票
5 回答
1440 浏览

c++ - 5D 数组哈希表

我目前在名为 template 的变量中有一个 5D 数组,它被写入名为 template1D 的 1D 数组中,其中包含 3456 个(8 * 12 * 3 * 4 * 3)个条目的哈希表。在 Matlab 中,多维数组的访问方式如下:

但是,由于我的索引分别从 0-7、0-11、0-2、0-3 和 0-2 开始,我不完全确定从这五个索引以便正确获取模板数组中的正确段。正确制作此类哈希函数的最简单方法是什么?