问题标签 [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 投票
4 回答
26658 浏览

c# - C# - 将 json 格式的数据解析为嵌套的哈希表

我正在尝试在 C# 中使用一些 json 格式的数据,但是,我在确定解决问题的正确方法时遇到了一些问题。我的问题是 json 格式的数据将采用未知格式(我知道这听起来很奇怪……请继续阅读)。基本上,json 格式的数据将是一些名称/值对的集合,其中的值可能是也可能不是嵌套的名称/值对的数组。为了让事情变得更有趣,名称/值对数组的嵌套可以无限地继续下去。

例如:我可能有一些数据看起来像……</p>

不幸的是,我不知道会发生多少嵌套,从技术上讲,我不知道任何给定消息中会出现哪些名称/值对。

C# 中是否有任何受支持的机制可以让我轻松地将其解析为一组嵌套的 hastables?

我想做一些类似的事情(请注意,这段代码在语法上不是 100% 正确的,最好通过递归来完成……但它的想法很明确)。

0 投票
5 回答
4741 浏览

java - HashTable Java...你能检查我的代码吗

我正在为java中的哈希表编写一个类...请确保我到目前为止做得正确。

我需要在其中存储 StudentRecord 对象....我正在根据 long 类型的学生 ID 计算哈希值...

0 投票
6 回答
40884 浏览

c# - C# Foreach 循环哈希表问题

我有一些代码填充了一个哈希表,其中一个问题作为键,一个答案数组列表作为值。

然后我想从哈希表中打印出这些值,以便它显示哈希表中每个单独问题的问题和相应的解决方案。

我知道我用 foreach 循环做了一些完全愚蠢的事情来打印出哈希表的内容,但是我已经连续编码了好几个小时,我想不出打印出嵌套数组列表的逻辑。

非常感谢帮助。

这是代码:

0 投票
5 回答
4401 浏览

algorithm - 三叉树与哈希表

我需要知道三叉树是否比哈希表更好。

我在回答另一个问题时遇到了这个问题,有人说三叉树通常比哈希表快。我发现这很难相信,所以我决定研究一下。

普林斯顿的这个网站似乎是这种信念的来源。我查看了描述为 O(log n + k) 的算法,其中 n 是存储的单词数,k 是密钥的长度。

在我看来,这可能更快的唯一方法是如果您经常搜索尚未存储的元素。另一件困扰我的事情是,不连续爬取 trie 往往会导致您点击已换出的页面,但这是否是主要影响只能通过基准测试才能看到。

现在我知道它们可能各有利弊,如果是这样,我想知道它们是什么。基准测试也很有帮助。

0 投票
4 回答
6632 浏览

algorithm - 将 n 个元素插入空哈希表的运行时间

人们说它需要摊销 O(1) 才能放入哈希表。因此,放置 n 个元素必须是 O(n)。然而,对于大 n 而言,情况并非如此,因为正如一位回答者所说,“满足预期摊销 O(1) 所需的只是扩展表并在发生冲突时使用新的随机散列函数重新散列所有内容。”

那么:将 n 个元素插入哈希表的平均运行时间是多少?我意识到这可能取决于实现,所以请提及您正在谈论的实现类型。

例如,如果有 (log n) 个等距碰撞,并且每次碰撞都需要 O(k) 来解决,其中 k 是哈希表的当前大小,那么您将具有以下递归关系:

(也就是说,你花时间插入 n/2 个元素,然后你有一个冲突,需要 n/2 来解决,然后你在没有冲突的情况下进行剩余的 n/2 插入)。这仍然是 O(n),所以是的。但这合理吗?

0 投票
4 回答
1193 浏览

c - 为什么这段代码不在 C 中分配内存?

更新的问题在这里

HashTable中的内存分配问题

我正在用 C 制作一个 HashTable。这就是我所做的。我想我正走在正确的道路上,但是当我试图

主程序

哈希表.c

ListPtr 是一个 LinkedList ptr

列表.h

哈希表.h

当我运行调试器时,我看到没有分配给 myList 的内存。在上面的示例中,我的尝试是使其成为 10 个列表的数组。

请帮我解决这个问题。

如果有帮助的话,我不是 C 方面的专家。

0 投票
4 回答
2803 浏览

data-structures - 三项HashMap无内部迭代

实现三项 hashMap 的最佳方法是什么?例如,我想使用一个常规的 String key ,但是让它映射到两个不同的对象。这个想法就像有一个列表列表,除了第一项是键。

我试图避免遍历列表(所以行为就像一个哈希图)。你同意唯一的方法是建立一个新的班级吗?似乎“HashMap3”对象(使用 get1(key) 和 get2(key) 方法)会很有用。我不确定如何自己设置。

如何创建集合?

0 投票
1 回答
21519 浏览

c# - 初始化 C# 哈希表的最简洁方法

C# 是否允许在单行表达式中填充哈希表?我正在考虑类似于以下 Python 的东西:

换句话说,是否可以将每个键值对设置为单独的表达式?

0 投票
7 回答
2820 浏览

c++ - 带有链表的哈希表中的前 10 个频率

下面的代码将打印它在我的哈希表(其中是一堆链表)中可以找到的最高频率 10 次。我需要我的代码来打印我的哈希表中的前 10 个频率。我不知道该怎么做(代码示例会很棒,简单的英语逻辑/伪代码也很棒)。

  1. 我创建了一个名为“tmp”的临时哈希列表,它指向我的哈希表“hashtable”
  2. 然后一个 while 循环遍历列表并查找最高频率,即 int 'tmp->freq'
  3. 循环将继续使用变量“topfreq”复制它找到的最高频率的过程,直到它到达哈希表上链表的末尾。

我的“节点”是一个由变量“freq”(int)和“word”(128 个字符)组成的结构。当循环没有其他内容可搜索时,它会在屏幕上打印这两个值。

问题是,我无法弄清楚如何从我刚刚找到的数字中找到下一个最小的数字(这可能包括另一个具有相同频率值的节点,所以我必须检查这个词也不一样)。

任何和所有的帮助将不胜感激:)

0 投票
5 回答
11875 浏览

c# - 如何按字母顺序遍历哈希表的键?

按字母升序遍历哈希表键的最简单方法是什么?