Java HashMap 中的冲突解决

2023-12-19

Java HashMap uses put插入K/V对的方法HashMap。 可以说我用过put方法和现在HashMap<Integer, Integer>有一个条目key作为 10 和value as 17.

如果我在其中插入 10,20HashMap由于密钥 10 相同而发生冲突,它只是用此条目替换了前一个条目。

如果钥匙碰撞HashMap用新的 K/V 对替换旧的 K/V 对。

所以我的问题是什么时候HashMap使用链接碰撞解决技术?

为什么没有形成linkedlist键为 10,值为 17,20?


当您插入该对时(10, 17)进而(10, 20),技术上不涉及碰撞。您只需用给定键的新值替换旧值10(因为在这两种情况下,10 都等于 10,并且 10 的哈希码始终为 10)。

当多个键散列到同一个存储桶时,就会发生冲突。在这种情况下,您需要确保可以区分这些键。链接冲突解决是用于此目的的技术之一。

举个例子,我们假设有两个字符串"abra ka dabra" and "wave my wand"产生哈希码100 and 200分别。假设数组总大小为 10,它们最终都在同一个桶中 (100 % 10 and 200 % 10)。链接可确保无论何时map.get( "abra ka dabra" );,您最终会得到与该键关联的正确值。对于 Java 中的哈希映射,这是通过使用equals method.

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

Java HashMap 中的冲突解决 的相关文章

随机推荐

  • 二维中的正则表达式有什么好的/有趣的类似物吗?

    二维正则表达式是否有任何好的 或至少有趣但有缺陷的 类似物 在一个维度我可以写类似的东西 aaac bc b aaa 快速拉出交替区域bs and cs 的边框至少为 3as 也许同样重要的是 我可以在一个月后回来 一目了然地看到它在寻找什
  • 选择每个 id 的前 x

    我对 SQL 有点生疏了 可以说我有tblMachineLogs with MachineLogID MachineID LogTime date time 该表充满了来自 10 台机器的日志MachineID1 到 10 并且有很多行 例
  • Google Apps 脚本 - 迭代文件夹和子文件夹

    我想使用 google apps 脚本迭代 Google Drive 中文件夹的树结构 下面的代码列出了一些文件夹 但不是全部 您能建议什么是深入文件夹结构的最佳技术吗 我首先尝试记录所有文件夹名称 谢谢 function test lis
  • 在Windows中使用dos批处理程序的原因是什么?

    Question 在现代 Windows 系统上使用 dos 批处理语言编写一些重要任务而不是下载 PowerShell 或 ActiveState Perl 的一个好的 理想情况下 技术上的 理由是什么 更具体地说 我在这个问题期间做出以
  • 如何使用selenium同时打开多个实例Firefox而不清除缓存和cookie

    我有一个从 Facebook UID 中抓取好友列表的代码 它有效 但需要很长时间才能抓取整个列表 因此 我想通过使用多处理和 Selenium Grid 来加快速度 以下是我使用的方法 使用帐户登录 Facebook 打开 5 个具有相同
  • WPF DataGrid如何根据绑定数据将ColumnType设置为不同类型?

    我有 首选项 数据结构 其中有字符串 值 字段和 类型 字段的枚举 类型可以是 0 布尔值 1 整数 2 字符串 根据此类型字段中的值 我想以不同方式显示 值 单元格 例如复选框 文本框 下拉列表等 因此 为了清楚起见 同一列应根据该行中的
  • 如何使用js向td添加按钮?

    我有一个动态生成的表 因为它正在生成 TD 我想将第一个 TD 设置为按钮 下面是我的代码 显然不起作用 我记得我遇到的另一个问题是我们可以使用 html 更改 div 的内容 但这在这里也不起作用 Code var table docum
  • Django modeltranslation - 无法获取和查看原始字段

    我正在尝试使用django modeltranslation在我的项目中 目前 只是为了Tag具有一个字段的模型 name 我已经创建并注册了TranslationOptions then makemigrations and migrat
  • 如何使用 gradle 使用平台密钥签署 Android 应用程序?

    我看到了几个类似的问题 例如 Android 构建平台源代码后 如何使用平台密钥签署任意APK https stackoverflow com questions 4247818 android after building platfor
  • Redis作为数据库

    我想使用Redis作为数据库 而不是缓存 根据我 有限 的理解 Redis 是一个内存数据存储 使用 Redis 有哪些风险 如何减轻这些风险 您可以通过多种不同方式将 Redis 用作权威存储 Turn on AOF 仅追加文件存储 请参
  • 使用 Amazon SES 的 Codeigniter SMTP 电子邮件

    我想昨天亚马逊宣布了对 SES 简单电子邮件服务 的 SMTP 支持 我尝试使用 Codeigniter 发送 SMTP 电子邮件 但没有成功 我有一个经过验证的发件人 一切看起来都很好 this gt load gt library em
  • 查找从开始日期到年底的每个星期五

    所以我又带着另一个令人困惑的日期时间问题回来了 在 C 中 我如何返回从开始日期 DateTime Now 到今年年底 例如 今天是 19 号星期五 它将返回 26 2 9 16 23 30 7 等 这有效吗 static IEnumera
  • 如何用 Dotrine 保存图像

    我想在我的文章实体中保留图像 Doctrine2 可以做到这一点吗 我该怎么做呢 此致 博多 使用带有 File 类型的 ODM 设置非常简单 对于 ORM 实体 我会考虑创建一个像这样的列 注意 使用此链接将 blob 类型添加到 Doc
  • 使用 multipart/form-data 和 JSON 进行 Curl 发布

    有没有办法使用curl来做multipart form data发布并指定数据是application json 它不一定是卷曲的 这就是我使用的 效果很好 curl v H Content Type multipart form data
  • 使用纱线工作区在 npm 上创建可用的库...

    我正在寻找有关我编码的模式的反馈一边修修补补 Context 我正在为我的公司创建一个包 该包将公开发布 DX 开发人员体验 对我们来说是最重要的 为此我选择了开发中的最新趋势 Typescript esm 等 我想提出多个模块并使导入易于
  • 无向图中,最简单的环必须有3个节点?

    我正在尝试写一个关于循环和无向图的证明 但我对某些事情感到困惑 如果我的图只有 2 个顶点和一条连接它们的边 那不是循环 不是吗 因此 我需要至少 3 个顶点 其中 2 个顶点与其中一个节点之间有 2 个连接 另外两个顶点之间有一个连接 以
  • Java程序使用javascript读取html页面并保存其内容

    我想使用javascript提取html内容 从网站中提取用户的评论 在chrome中另存为 Inspect Element 我试试这个 Java 程序读取 html 页面并将其 HTML 代码保存在文本文件中 https stackove
  • 这是 C# 中将分隔字符串转换为 int 数组的最佳方法吗?

    给出以下字符串 string str 1 2 3 这是否是将其转换为最佳扩展int array static class StringExtensions public static int ToIntArray this string s
  • 使用python查找CSV文件每列的最小值

    我创建了一个程序 可以查找 CSV 文件每一行的最小值 现在我想对每一列执行相同的操作 但我无法这样做 任何建议将不胜感激 谢谢 Import and convert csv import csv data with open file r
  • Java HashMap 中的冲突解决

    Java HashMap uses put插入K V对的方法HashMap 可以说我用过put方法和现在HashMap