问题标签 [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 回答
34312 浏览

lua - 如何在 Lua 中获取哈希表中的键数?

我真的必须遍历表中的项目来获取键的数量吗?

0 投票
5 回答
577 浏览

language-agnostic - 我在哪里存储哈希表或字典键名

当我使用哈希表/字典时,我有时会为如何指定键而苦恼。

例如:如果我创建一个简单的字典(本示例使用 Python),

我可以使用键值访问值(在其他模块中): ( foo['bar']) 并baz返回。

用邪恶博士的话来说,“非常标准,真的。”

不幸的是,使用静态字符串作为键将使用此 Dictionary 的任何模块与其实现紧密耦合。当然,这也适用于使用其他键类型(例如 Enums、Objects 等)时;无论如何,您将其切片,所有访问 Dictionary 的模块都需要知道键的值。

为了解决这个问题,我通常使用静态常量字符串值(或 Enums,如果在语言中可用)作为键,并将它们公开存储在本地类/模块中,或者存储在单独的模块/类中。因此,对字典键本身的任何更改都保存在一个位置。

这通常看起来像这样:

是否有更好的方法来指定键,这样 Dictionary 的使用不一定将模块/类与其实现耦合?

注意:我在 SO 中看到了一些解决此问题的响应(例如property-to-reference-a-key-value-pair-in-a-dictionary),但这些主题似乎并没有专门解决这个问题。答案很有帮助,但我想要更广泛的经验。

0 投票
8 回答
45237 浏览

c# - 如何测试 C# Hashtable 是否包含特定的键/值对?

在遍历表时,我将一堆所谓的唯一项目 ID 作为键存储,并将文件位置作为哈希表中的值存储。当我运行它时,我需要确保它们的键/位置对是唯一的或抛出错误消息。我已经设置了哈希表并正在加载值,但不确定要测试什么:

0 投票
3 回答
2679 浏览

c - 对于这两种情况,C 中的最佳数据结构是什么?

我有点需要决定这个,看看我是否能在我的学校项目截止日期前的几个小时内实现它,但我对数据结构不太了解,我需要建议......

我需要做两件事,他们可能会使用不同的数据结构。

  1. 我需要一个数据结构来保存个人资料记录。个人资料必须可以按姓名和社会安全号码进行搜索。SSN 是独一无二的,所以我可能可以利用它来获得优势?我想哈希图是最好的选择吗?但是如何在哈希映射中使用 SSN 来利用它作为查找特定配置文件的优势?一个基本且易于理解的解释将不胜感激。

  2. 我需要一个数据结构来保存有关城市的记录。我需要知道访问者最多的城市、访问量较少的城市以及访问特定城市的客户(从#1 中的数据结构中提取有关客户数据的配置文件)。

这是我的项目需要的第三个数据结构,它是我不知道从哪里开始的数据结构。如果可能,请提供有关使用哪种类型的数据结构的建议,并以粗体显示如何旧数据的示例。

注意:第一个数据结构已经完成(我在上一个问题
中谈到过)。第二个发布在 #1 上,尽管其他小组成员正在处理这个问题,但我只需要知道我们正在尝试做的是否是“最佳”方法。第三个是#2,我最需要帮助的那个。

0 投票
12 回答
35233 浏览

c# - 是否可以对哈希表进行排序?

我有一个返回HashTable. 我想在不重构我的属性的情况下对其进行排序。请注意:我不想返回另一种类型。代码:

0 投票
2 回答
2566 浏览

c# - 为单元测试生成随机值 Hast 表数据类型

我的项目通过获取最小值和最大值为每种数据类型生成几个值(相等的分区方法)。我正在为功能测试生成值,我实际上是将这些值传递给 nunit 合作伙伴,max amd min 适用于 int、float、double 等,这些值是测试数据。

最初我为 int、float、double、string 等基本数据类型生成。

现在我需要支持 DataSet、HashTable 和其他 Collections 等数据类型。

为了测试这个函数,我可以传递 int 和 string 的值,但是我将如何传递 ht 的测试数据或如何为哈希表生成测试数据?

0 投票
3 回答
2614 浏览

c# - 不使用 Add 方法为 Hashtable 分配新值

要向我一直使用的 dotnet Hashtable 添加新值:

但我刚刚遇到了一些代码,它执行以下操作:

这两种方法有什么区别吗?

0 投票
11 回答
25758 浏览

hash - 哈希函数提供来自整数坐标对的唯一 uint

一般的问题: 我有一个很大的二维点空间,点点稀疏。把它想象成一块洒满黑点的白色大画布。我必须遍历并搜索这些点很多。Canvas(点空间)可以很大,接近 int 的限制,并且在其中设置点之前它的大小是未知的。

这让我想到了散列:

理想: 我需要一个采用 2D 点的散列函数,返回一个唯一的 uint32。这样就不会发生碰撞。您可以假设 Canvas 上的点数可以通过 uint32 轻松计算。

重要提示:不可能事先知道画布的大小(甚至可能会改变),所以像

画布宽度 * y + x

可悲的是,这是不可能的。

我也试过很幼稚

绝对(x)+绝对(y)

但这会产生太多的碰撞。

妥协: 一种散列函数,为键提供非常低的冲突概率。

有什么想法吗?谢谢你的帮助。

最好的问候,安德烈亚斯 T。

编辑:我必须更改问题文本中的某些内容:我将假设“能够使用 uint32 计算画布的点数”更改为“能够计算画布上的点数(或要存储的坐标对数”) by uint32. 我最初的问题没有多大意义,因为我会有一个 sqrt(max(uint32))xsqrt(max(uint32)) 大小的画布,它可以通过 16 位移位和 OR 来唯一地表示。

我希望这没问题,因为所有答案对于更新的假设仍然最有意义

对此感到抱歉。

0 投票
7 回答
1308 浏览

c# - 如何在 C# 中创建一个属性类?

我想创建一个具有两个属性的类,例如key& value

我想要一种方法,它会给我一个value基于key.

那么代码是什么?我知道Hashtable但是如何在 C# 中实现它?我可以有一个string作为钥匙吗?

0 投票
17 回答
218752 浏览

bash - Shell 脚本中的关联数组

我们需要一个脚本来模拟关联数组或类似于 Shell 脚本的 Map 数据结构,任何主体?