gpt4 book ai didi

java - HashMap 与数组搜索时间复杂度

转载 作者:行者123 更新时间:2023-11-30 10:03:38 24 4
gpt4 key购买 nike

因此,我有一个包含约 120.000 个条目的 HashMap 映射。每次出现新条目时,我都会检查该条目是否已存在于 HashMap 中 (if(!map.containsKey(hashcode))),如果不存在,我将创建一个新对象并将其放入 HashMap。

现在我的问题是:创建一个 boolean 数组 NxN(N = 6.000)并每次检查 [n1][n2] 中的数组元素是 false(尚未在 hashmap 中)还是 true (该对在 HashMap 中),而不是使用 .containsKey()?

最佳答案

Map 具有 computeIfAbsent() 方法,它可以满足您的需求:

  • If the specified key is not already associated with a value (or is mapped
  • to {@code null}), attempts to compute its value using the given mapping
  • function and enters it into this map unless {@code null}. *
  • If the function returns {@code null} no mapping is recorded. If

  • the function itself throws an (unchecked) exception, the
  • exception is rethrown, and no mapping is recorded. The most
  • common usage is to construct a new object serving as an initial
  • mapped value or memoized result

关于数组选项,如果您的键哈希算法很好,那么您的 map 将在大约 O(1) 内执行键查找,这与在数组中按索引查找一样好。但是您的额外数组将使用额外的内存,在这种情况下不需要。

关于java - HashMap 与数组搜索时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56259891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com