问题标签 [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.
lua - 如何在 Lua 中获取哈希表中的键数?
我真的必须遍历表中的项目来获取键的数量吗?
language-agnostic - 我在哪里存储哈希表或字典键名
当我使用哈希表/字典时,我有时会为如何指定键而苦恼。
例如:如果我创建一个简单的字典(本示例使用 Python),
我可以使用键值访问值(在其他模块中): ( foo['bar']
) 并baz
返回。
用邪恶博士的话来说,“非常标准,真的。”
不幸的是,使用静态字符串作为键将使用此 Dictionary 的任何模块与其实现紧密耦合。当然,这也适用于使用其他键类型(例如 Enums、Objects 等)时;无论如何,您将其切片,所有访问 Dictionary 的模块都需要知道键的值。
为了解决这个问题,我通常使用静态常量字符串值(或 Enums,如果在语言中可用)作为键,并将它们公开存储在本地类/模块中,或者存储在单独的模块/类中。因此,对字典键本身的任何更改都保存在一个位置。
这通常看起来像这样:
是否有更好的方法来指定键,这样 Dictionary 的使用不一定将模块/类与其实现耦合?
注意:我在 SO 中看到了一些解决此问题的响应(例如property-to-reference-a-key-value-pair-in-a-dictionary),但这些主题似乎并没有专门解决这个问题。答案很有帮助,但我想要更广泛的经验。
c# - 如何测试 C# Hashtable 是否包含特定的键/值对?
在遍历表时,我将一堆所谓的唯一项目 ID 作为键存储,并将文件位置作为哈希表中的值存储。当我运行它时,我需要确保它们的键/位置对是唯一的或抛出错误消息。我已经设置了哈希表并正在加载值,但不确定要测试什么:
c - 对于这两种情况,C 中的最佳数据结构是什么?
我有点需要决定这个,看看我是否能在我的学校项目截止日期前的几个小时内实现它,但我对数据结构不太了解,我需要建议......
我需要做两件事,他们可能会使用不同的数据结构。
我需要一个数据结构来保存个人资料记录。个人资料必须可以按姓名和社会安全号码进行搜索。SSN 是独一无二的,所以我可能可以利用它来获得优势?我想哈希图是最好的选择吗?但是如何在哈希映射中使用 SSN 来利用它作为查找特定配置文件的优势?一个基本且易于理解的解释将不胜感激。
我需要一个数据结构来保存有关城市的记录。我需要知道访问者最多的城市、访问量较少的城市以及访问特定城市的客户(从#1 中的数据结构中提取有关客户数据的配置文件)。
这是我的项目需要的第三个数据结构,它是我不知道从哪里开始的数据结构。如果可能,请提供有关使用哪种类型的数据结构的建议,并以粗体显示如何旧数据的示例。
注意:第一个数据结构已经完成(我在上一个问题
中谈到过)。第二个发布在 #1 上,尽管其他小组成员正在处理这个问题,但我只需要知道我们正在尝试做的是否是“最佳”方法。第三个是#2,我最需要帮助的那个。
c# - 是否可以对哈希表进行排序?
我有一个返回HashTable
. 我想在不重构我的属性的情况下对其进行排序。请注意:我不想返回另一种类型。代码:
c# - 为单元测试生成随机值 Hast 表数据类型
我的项目通过获取最小值和最大值为每种数据类型生成几个值(相等的分区方法)。我正在为功能测试生成值,我实际上是将这些值传递给 nunit 合作伙伴,max amd min 适用于 int、float、double 等,这些值是测试数据。
最初我为 int、float、double、string 等基本数据类型生成。
现在我需要支持 DataSet、HashTable 和其他 Collections 等数据类型。
为了测试这个函数,我可以传递 int 和 string 的值,但是我将如何传递 ht 的测试数据或如何为哈希表生成测试数据?
c# - 不使用 Add 方法为 Hashtable 分配新值
要向我一直使用的 dotnet Hashtable 添加新值:
但我刚刚遇到了一些代码,它执行以下操作:
这两种方法有什么区别吗?
hash - 哈希函数提供来自整数坐标对的唯一 uint
一般的问题: 我有一个很大的二维点空间,点点稀疏。把它想象成一块洒满黑点的白色大画布。我必须遍历并搜索这些点很多。Canvas(点空间)可以很大,接近 int 的限制,并且在其中设置点之前它的大小是未知的。
这让我想到了散列:
理想: 我需要一个采用 2D 点的散列函数,返回一个唯一的 uint32。这样就不会发生碰撞。您可以假设 Canvas 上的点数可以通过 uint32 轻松计算。
重要提示:不可能事先知道画布的大小(甚至可能会改变),所以像
画布宽度 * y + x
可悲的是,这是不可能的。
我也试过很幼稚
绝对(x)+绝对(y)
但这会产生太多的碰撞。
妥协: 一种散列函数,为键提供非常低的冲突概率。
有什么想法吗?谢谢你的帮助。
最好的问候,安德烈亚斯 T。
编辑:我必须更改问题文本中的某些内容:我将假设“能够使用 uint32 计算画布的点数”更改为“能够计算画布上的点数(或要存储的坐标对数”) by uint32. 我最初的问题没有多大意义,因为我会有一个 sqrt(max(uint32))xsqrt(max(uint32)) 大小的画布,它可以通过 16 位移位和 OR 来唯一地表示。
我希望这没问题,因为所有答案对于更新的假设仍然最有意义
对此感到抱歉。
c# - 如何在 C# 中创建一个属性类?
我想创建一个具有两个属性的类,例如key
& value
。
我想要一种方法,它会给我一个value
基于key
.
那么代码是什么?我知道Hashtable
但是如何在 C# 中实现它?我可以有一个string
作为钥匙吗?
bash - Shell 脚本中的关联数组
我们需要一个脚本来模拟关联数组或类似于 Shell 脚本的 Map 数据结构,任何主体?