最坏情况时间复杂度 put/get HashMap

2024-04-14

当 Hashmap 的键的哈希码始终相等时,它的最坏情况时间复杂度是多少。

根据我的理解:由于每个键都有相同的哈希码,因此它总是会进入同一个存储桶并循环遍历它以检查 equals 方法,因此对于 get 和 put 时间复杂度应该是 O(n),我对吗?

我正在看这个HashMap 获取/放置复杂性 https://stackoverflow.com/questions/4553624/hashmap-get-put-complexity但它没有回答我的问题。

也在这里维基哈希表 http://en.wikipedia.org/wiki/Hash_table他们指出插入的最坏情况时间复杂度是O(1)对于 get O(n) 为什么会这样呢?


是的,在最坏的情况下,你的哈希映射将退化为链表,并且你将遭受查找以及插入和删除的 O(N) 惩罚,这两者都需要查找操作(感谢指出的评论我之前的回答中的错误)。

有一些方法可以减轻最坏情况的行为,例如使用自平衡树而不是用于存储桶溢出的链表 - 这可以将最坏情况的行为减少到 O(logn) 而不是 O(n)。

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

最坏情况时间复杂度 put/get HashMap 的相关文章

  • Java将字符串解析为double

    如何解析字符串中的这个 Double 00034800 变成 Double 值 最后两位数字实际上是小数点 所以我正在寻找的结果是348 00 是否有这样的格式可以与十进制格式一起使用 Well String s 00034800 doub
  • 如何在 Android 应用程序中隐藏 Flutterwave API 密钥

    我正在构建一个 Android 应用程序 目前正在将 Flutterwave 集成到我的应用程序中以进行支付 建议我永远不要将 Flutterwave API 密钥放在我的应用程序上 那么我该如何隐藏这些键呢 我正在使用 Retrofit
  • 什么是内部类的合成反向引用

    我正在寻找应用程序中的内存泄漏 我正在使用的探查器告诉我寻找这些类型的引用 但我不知道我在寻找什么 有人可以解释一下吗 Thanks Elliott 您可以对 OUTER 类进行合成反向引用 但不能对内部类实例进行合成 e g class
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • 如何使用 Java 引用释放 Java Unsafe 内存?

    Java Unsafe 类允许您按如下方式为对象分配内存 但是使用此方法在完成后如何释放分配的内存 因为它不提供内存地址 Field f Unsafe class getDeclaredField theUnsafe Internal re
  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • Mockito 和 Hamcrest:如何验证 Collection 参数的调用?

    我遇到了 Mockito 和 Hamcrest 的泛型问题 请假设以下界面 public interface Service void perform Collection
  • 为什么在将 String 与 null 进行比较时会出现 NullPointerException?

    我的代码在以下行中出现空指针异常 if stringVariable equals null 在此语句之前 我声明了 stringVariable 并将其设置为数据库字段 在这个声明中 我试图检测该字段是否有null值 但不幸的是它坏了 有
  • 如何使用双重调度来分析图形基元的交集?

    我正在分析图形基元 矩形 直线 圆形等 的交互并计算重叠 相对方向 合并等 这被引用为双重调度的一个主要示例 例如维基百科 http en wikipedia org wiki Double dispatch 自适应碰撞算法通常要求 不同的
  • 如何在 IntelliJ IDEA 中运行 akka actor

    来自 Akka 网站文档 然后 这个主要方法将创建所需的基础设施 运行演员 启动给定的主要演员并安排 一旦主要参与者终止 整个应用程序就会关闭 因此 您将能够使用类似于以下的命令运行上面的代码 下列的 java classpath akka
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • 数据库中的持久日期不等于检索日期

    我有一个具有 Date 属性的简单实体类 此属性对应于 MySQL 日期时间列 Entity public class Entity Column name start date Temporal TemporalType TIMESTAM
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • 如何向页面添加 HTML 页眉和页脚?

    如何使用 itext 从 html 源添加标题到 pdf 目前 我们已经扩展了 PdfPageEventHelper 并重写了这些方法 工作正常 但当我到达 2 个以上页面时 它会抛出 RuntimeWorkerException Over
  • Tomcat 6 未从 WEB-INF/lib 加载 jar

    我正在尝试找出我的 tomcat 环境中的配置问题 我们的生产服务器正在运行 tomcat 安装并从共享 NFS 挂载读取战争 然而 当我尝试使用独立的盒子 及其配置 进行同样的战争时 我收到下面发布的错误 有趣的是 如果我将 WEB IN
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • 在会话即将到期之前调用方法

    我的网络应用程序有登录的用户 有一个超时 在会话过期之前 我想执行一个方法来清理一些锁 我已经实现了sessionListener但一旦我到达public void sessionDestroyed HttpSessionEvent eve

随机推荐

  • 如何在 React Native 中隐藏和显示导航栏?

    我正在传递 props 当滚动特定高度时 我正在传递 paramsshowHeader True 因此 当我滚动时 标题是不透明的 最初它是透明的 因此 在用户滚动回顶部后 我希望标题再次透明 但它是不透明的 我该如何解决这个问题 Code
  • Google 文档 - 实时访问文本更改

    Goal 我们的用户在 Google 文档中工作 他们编写的文本将在他们输入时使用文本转语音朗读给他们听 它应该能够跨尽可能多的平台和浏览器工作 我们的解决方案 这似乎适合谷歌应用脚 本 https developers google co
  • PHP:Curl https xml 结果返回空白

    请需要您的帮助 我正在尝试使用curl 创建一个PHP Soap 客户端 当我运行 PHP 代码时 我得到空白结果 这是一个 https 连接 我用 OpenSSL 生成我的 pem 文件example https stackoverflo
  • jquery mobile - 更改翻转开关默认状态

    我使用的是 jQuery mobile 的翻转开关 默认情况下这些开关是关闭的 我不知道如何将默认值设置为 ON
  • org.apache.poi.POIXMLException:org.apache.poi.openxml4j.exceptions.InvalidFormatException:

    我正在使用以下 jar 文件 dom4j 1 6 1 jar poi 3 9 20121203 jar poi ooxml 3 9 20121203 jar poi ooxml schemas 3 9 20121203 jar xmlbea
  • 如何使用GSM模块SIM800和Arduino Uno发送短信?

    我正在尝试通过 SIM800 GSM 模块从 Arduino 发送短信 消息到达给定号码 但格式不正确 它显示 消息格式不支持 我在这里添加了我的代码 非常感谢您的快速回复 include
  • 如何防止在 webpack 中生成散列损坏的资产(图像文件)?

    伙计们 您是否在 Web Pack 中想到过在图像输出中设置特定路径 但在输出中创建的文件是输出文件夹根目录中的损坏文件 此处为 dist 虽然健康文件已创建但未链接 在 html 中 css 链接损坏的文件 或者让我这样说 我想要创建的输
  • 超线程性能比较

    我写了一个项目 其中使用了一些基本功能openssl例如RAND bytes and des ecb encrypt 我的电脑有 i7 2600 4 核和 8 个逻辑 CPU 当我用 4 个线程运行我的项目时 将花费 10 秒 当我用 8
  • 使用 url 的 sass 背景 mixins [重复]

    这个问题在这里已经有答案了 伙计们 我想创建一个背景 mixin 而不是编写重复的 url mixin bgimage name url images name png background url url 并且 它从不接受 name 变量
  • 如何使 setContentView() 在线程中正常工作?

    我有2个布局 2个Activity 每一个对应一个布局 其中一个是SplashActivity 另一个是MainActivity 我希望应用程序打开splashActivity splash XML显示徽标 等待5秒并打开主活动 但由于线程
  • 同一应用程序的不同目标的替代字符串 - 使用 NSLocalizedString?

    我正在构建一个已经发布的应用程序的版本 但有一些更改 这并不完全是精简版 完整版的关系 但它们足够相似 以至于我在不同的目标上使用相同的项目 我想将我在第一个版本中使用的几乎所有字符串重写为新版本 并且想知道解决此问题的最佳方法 我考虑使用
  • Prettier 不在 React 项目工作

    我正在将我的爱彼迎 eslint 规则迁移到更漂亮的规则 但我遇到了一些问题 这是我的 eslintrc parserOptions ecmaVersion 6 env browser true node true parser babel
  • 无法从配置的远程连接到存储库。你想检查 .git 配置

    我尝试将我的存储库共享到 Android Studio 中的 Github 并收到以下消息 无法从配置的远程连接到存储库 您可能需要检查 git 配置 如果我忽略并共享 Github 会创建一个空存储库并且不会上传 git 文件 我重新安装
  • 在应用程序结算项目中未发现错误?

    我一直在尝试在我的应用程序中实施 Google Play 的应用程序计费 我正在尝试实现示例应用程序并对其进行测试 我已遵循其中的所有程序http developer android com guide google play billin
  • matlab:有没有办法将变量从结构导入/提升到当前工作区?

    function y myfunc param C param C L param L Kp param Kp Ki param Ki 有没有办法概括上面的代码 我知道如何使用来概括结构访问fieldnames and getfield 但
  • Airflow Worker - 连接中断:IncompleteRead(0 字节读取)

    使用 Airflow Worker 和 Web 服务器 调度程序作为在 EC2 上的 Kubernetes Engine 上运行的 Docker 映像 我们有一个任务KubernetesPodOperator这是资源密集型的 每 15 分钟
  • std::make_index_sequence 和 std::index_sequence 的详细信息

    我很喜欢增加可变参数模板 并开始摆弄这个新功能 我正在尝试了解实施细节std index sequence s 用于元组实现 我在那里看到了示例代码 但我真的想要一个简单的逐步解释 说明如何std index sequence已编码 并且每
  • 合并字典并添加值

    我有几个字典 我想将它们组合起来 这样如果一个键位于多个字典中 则值会添加在一起 例如 d1 1 10 2 20 3 30 d2 1 1 2 2 3 3 d3 0 0 merged 1 11 2 22 3 33 0 0 在 Python 中
  • 如何使用Java读取(.bib)文件格式的内容

    我需要读取 bib 文件并将其标签插入到 bib entries 的对象中 文件很大 几乎 4000 行 所以我的第一个问题是使用什么 bufferedReader 和 FileReader 一般格式是 ARTICLE orleans01D
  • 最坏情况时间复杂度 put/get HashMap

    当 Hashmap 的键的哈希码始终相等时 它的最坏情况时间复杂度是多少 根据我的理解 由于每个键都有相同的哈希码 因此它总是会进入同一个存储桶并循环遍历它以检查 equals 方法 因此对于 get 和 put 时间复杂度应该是 O n