哈希表到底是什么?

2023-11-27

  • 它们是什么以及它们如何工作?
  • 它们用在哪里?
  • 我什么时候应该(不)使用它们?

我听过这个词很多次,但我不知道它的确切含义。

我听到的是,它们允许关联数组,通过哈希函数发送数组键,该函数将其转换为 int,然后使用常规数组。我这样说对吗?

(注意:这不是我的作业;我也上学,但他们只教我们信息学的基础知识)


维基百科似乎对它们是什么有一个很好的答案。

当您想通过某个索引查找值时,应该使用它们。

至于何时不应该使用它们......当您不想通过某些索引查找值时(例如,如果您只想迭代它们。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哈希表到底是什么? 的相关文章

  • Hashtable的表属性为什么要序列化?

    为什么是table现场Hashtable已序列化 尽管它被标记为transient 它被标记为瞬态 因为在 Entry 数组上使用默认序列化方案是不安全的 相反 当哈希表被反序列化时 表中的键必须重新哈希 并且必须根据新的哈希码值将条目添加
  • 哈希表的查找时间总是 O(n) ?

    我不明白如果存储桶的数量恒定 那么哈希表如何进行恒定时间查找 假设我们有 100 个桶和 1 000 000 个元素 这显然是 O n 查找 这就是理解非常大的 n 值时事物的行为方式的复杂性所在 因此 哈希表永远不是常量查找 它始终是 O
  • 单个键具有多个值的哈希表

    我想在单个键中存储多个值 例如 HashTable obj new HashTable obj Add 1 test obj Add 1 Test1 现在这会引发错误 你可以把你的test test1 test2 放在一个表中 然后将该表放
  • 如何在 F# 中使用哈希表(从键获取值、添加项目)

    我想知道如何使用System Collections Hashtable在 F 中 它是哈希表的原因是因为我引用了 C 程序集 我将如何调用以下方法 添加 从键中获取值 我在谷歌中找不到任何关于此的有用信息 正如马克指出的 您可以与Hash
  • 哈希表和子串匹配

    我有数百个键 例如 红苹果 maninred foraman 蓝苹果 我有与这些键相关的数据 数据是一个字符串 末尾有相关的键 红苹果 树上有红苹果 maninred 她看到了maninred 孔洞 他们买了现在的孔洞 蓝苹果 令人惊讶 但
  • 为哈希选择合适的表大小

    如果我有一个 1000 个键集 我的哈希表的合适大小是多少 如何确定 它取决于负载系数 表将增加其大小并重新分布其元素的 满百分比 点 如果您知道正好有 1000 个条目 并且该数字永远不会改变 则只需将负载因子设置为 1 0 将初始大小设
  • Ruby 维护哈希插入顺序

    我正在寻找一种方法来维护我在 Ruby 中使用的哈希的插入顺序 我的数据来自数据库 并且已经按照我想要的方式分组 排序 但 Ruby 不保证在我的版本中保持哈希中的顺序1 8 4 有什么解决方法吗 如果没有 我可以创建自定义比较器吗 这是哈
  • 哈希表和键顺序

    有没有办法在添加键时保持哈希表中键的顺序 就像推 弹出机制一样 Example hashtable hashtable Add Switzerland Bern hashtable Add Spain Madrid hashtable Ad
  • Java 哈希表与对象引用的问题

    我有一个哈希表 例如 HashTable ht 1 1 2 1 3 1 现在 我像 Integer foo Integer 1 一样实现它 并像这样声明哈希表 HashTable ht foo foo 2 foo 3 foo 现在 据我了解
  • 浮点数的哈希函数

    我目前正在 C 中实现一个哈希表 并且正在尝试为浮点数创建一个哈希函数 我本来打算通过填充小数来将浮点数视为整数 但后来我意识到我可能会用大数字来溢出 有没有好的方法来散列浮点数 您不必直接给我该功能 但我想看到 理解不同的概念 Notes
  • Bash 中的多维关联数组

    我正在尝试创建一个多维关联数组 但需要一些帮助 我已审查过这个SO答案中建议的页面 https stackoverflow com questions 3020713 how to print bash varibles contents
  • 如何在java hashset中查找并返回对象

    根据 HashSet javadoc HashSet contains 仅返回布尔值 如何在 hashSet 中 查找 对象并修改它 它不是原始数据类型 我看到 HashTable 有一个 get 方法 但我更喜欢使用该集合 您可以删除一个
  • Java 中的 ConcurrentHashMap 和 Hashtable [重复]

    这个问题在这里已经有答案了 Java 中的 ConcurrentHashMap 和 Hashtable 有什么区别 哪个对于线程应用程序更有效 ConcurrentHashMap 和 Hashtable 锁定机制 Hashtable属于Co
  • 初始化 HashMap 的最佳方法

    我通常会这样做 HashMap
  • 什么时候使用哈希表?

    什么情况下使用哈希表可以提高性能 什么情况下不能 哪些情况不适合使用哈希表 什么情况下使用哈希表可以提高性能 什么情况下不能 如果您有理由关心 请使用哈希表和您正在考虑的其他任何内容来实现 将您的实际数据放入其中 并衡量哪个性能更好 也就是
  • 对 Python 中的嵌套字典进行排序

    我有以下字典 var a Black grams 1906 price 2 05 Blue grams 9526 price 22 88 Gold grams 194 price 8 24 Magenta grams 6035 price
  • 在 Python 中进行模糊键查找的最佳方法?

    我遇到一个问题 我需要在哈希映射中进行模糊查找 即返回与最接近查询的键相对应的值 在我的例子中是通过 Levenshtein 距离测量的 我目前的方法是子类化dict使用特殊的查找方法计算所有键的编辑距离 然后返回得分最低的键的值 基本上是
  • 当需要2个键时如何使用“table:get”(表扩展)功能?

    我有一个包含 3 列的 txt 文件 ID polygon 1 ID polygon 2 和距离 当我将文件导入 Netlogo 时 我获得 3 个列表 list1 list2 list3 对应于 3 列 I used table from
  • Powershell - 函数中的匹配 - 返回时获得额外的 true/false

    为什么我在这个函数的结果上得到提取 True 或 False 当我想要返回的只是邮政编码时 Function GetZipCodeFromKeyword String keyword pattern d 5 keyword match pa
  • 哈希表中的下/上负载因子

    我要用java编写一个链式哈希集类 我知道负载系数是 M 容量 其中 M 是表中当前元素的数量 容量是表的大小 但是负载因子如何帮助我确定是否应该调整表大小并重新散列 此外 我在任何地方都找不到如何计算下 上负载系数 他们还需要吗 我希望这

随机推荐

  • FFMPEG 不适用于 mp4 和 stdout

    我需要向 mp4 视频添加文本 如果我将结果写入文件 则一切正常 但我想从 ffmpeg 流中读取数据 我运行命令 ffmpeg i sample mp4 filter complex drawtext text Sample Text x
  • Go 中的反射类型和值

    我不太清楚这段代码的行为 func show i interface switch t i type case Person t reflect TypeOf i what t contains v reflect ValueOf i wh
  • 使 javax 验证错误消息更加具体

    抱歉 如果这个问题之前已在某处讨论过 如果有请给我链接 我还没有找到满意的答案 我一直在寻找一种方法 让 javax 验证提供的错误消息更加具体 我当前的 Min 注释消息在 ValidationMessages properties 文件
  • 将嵌入的 Word 文档另存为 PDF

    SCENARIO Word 文档嵌入到 Excel 2011 文件中 我需要将其另存为 pdf 如果是 Excel 2010 那么就不会有问题 因为 Win PC 中的 MS Office 支持 OLE 自动化 我尝试过什么 这是我在 Ex
  • 如何使具有不同子视图的 UITableViewCell 可重用?

    我有一个UITableView我自然地在其中展示 UITableViewCells它们都属于同一类 我们称之为MyCell 所以我有一个MyCell xib one MyCell h和一个MyCell m 不幸的是 该单元格确实包含一个子视
  • 为什么使用 invokedynamic 调用 Java 8 lambda?

    The invokedynamic指令用于帮助虚拟机在运行时确定方法引用 而不是在编译时硬连线它 这对于动态语言很有用 在动态语言中 直到运行时才知道确切的方法和参数类型 但 Java lambda 的情况并非如此 它们被转换为具有明确定义
  • 有人可以解释一下 CSS 媒体查询吗?

    我读过关于他们的文章CSS3 info 但我觉得它解释得不够好 我也无法让他们的示例随着我的屏幕尺寸而改变 我在 Safari FF Chrome 中尝试过 这是一个尚未准备好实施的功能吗 如果我想在浏览器窗口宽度小于1024px时调整一些
  • 将保管库机密注入 Kubernetes Pod 环境变量

    我正在尝试在需要 PostgresSQL 的 Kubernetes 环境中安装 Sonarqube 我正在使用外部 Postgres 实例 并且在 Vault 中设置了凭证 kv 密钥 SonarQube helm Chart 在容器中创建
  • Android - 触摸监听器触发两次

    在我的代码中 按钮的 ontouch 侦听器被触发两次 请在下面找到代码 我正在使用谷歌 API 2 2 java文件中的代码 submit button Button findViewById R id submit submit but
  • 拉伸和缩放 CSS 背景

    有没有办法让 CSS 中的背景拉伸或缩放以填充其容器 Use the CSS 3财产background size my container background size 100 auto width and height can be
  • 清除Python中所有lru_cache

    我在 python 中有一些带有 lru cache 缓存的函数 例如 lru cache maxsize None def my function 虽然我可以单独清除缓存 例如my function cache clear 有没有办法一次
  • 将字符串转换为私钥和公钥 (RSA)

    私钥和公钥的两个字符串是 static String Public MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH wPrKYG1KVlzQUVtBghR8n9d n zcShSZo0 3KgyVdOea7
  • Mongoose批量更新操作

    有没有办法对猫鼬的集合进行批量更新 我发现的策略使用原始收集驱动程序 如下所示 var bulk Person collection initializeOrderedBulkOp bulk find query update update
  • 我可以使用 Maven 依赖项的路径作为属性吗?

    我的 pom xml 中有一个 Maven 依赖项 如下所示
  • Win32 应用程序窗口最终停止在 Windows 7 上绘制

    我有一个用 C 没有 MFC 或 NET 编写的大型复杂应用程序 使用该软件最频繁的客户端将在启动该软件后大约一个小时内达到所有窗口都停止绘制的状态 我们收到报告称应用程序已 挂起 因为据他们所知没有发生任何事情 实际上 应用程序正在运行
  • 如何避免在 Excel VBA 中使用 Select

    我听说过很多关于使用的厌恶情绪 这是可以理解的 Select在 Excel VBA 中 但我不确定如何避免使用它 我发现如果我能够使用变量而不是变量 我的代码将更具可重用性Select功能 但是 我不确定如何指代事物 例如ActiveCel
  • ASP.NET MVC 是无状态的吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我听说 MVC NET 是
  • 为什么我们使用模板而不是函数?

    只是寻找一些好的理由 这样我就可以开始了解它们 避免重复除了不同类型之外其他方面相同的代码 有时 您根本不能依赖隐式转换或提升 也不能将所有内容都填充到对象层次结构中
  • 如何创建自动启动的C++程序

    我正在用 C 创建一个程序 我希望能够选择让用户让它在 Windows 中自动启动 因此 当用户启动计算机时 Windows 将自动启动该程序 我已经阅读过有关修改注册表或将其放入启动文件夹中的内容 但是最好的 干净 方法是什么 启动文件夹
  • 哈希表到底是什么?

    它们是什么以及它们如何工作 它们用在哪里 我什么时候应该 不 使用它们 我听过这个词很多次 但我不知道它的确切含义 我听到的是 它们允许关联数组 通过哈希函数发送数组键 该函数将其转换为 int 然后使用常规数组 我这样说对吗 注意 这不是