gpt4 book ai didi

java - HashMap 键更新与双条目

转载 作者:行者123 更新时间:2023-12-01 16:34:18 25 4
gpt4 key购买 nike

我使用 HashMap 来存储带有随时间变化的键的对象。

HashMap<String,Stuff> hm = new HashMap<String,Stuff>()Stuff stuff = new Stuff();hm.put( "OrignalKey", stuff);

我没有找到比删除“OrignalKey”并 put() 具有相同对象的新条目更好的方法。

hm.remove("OriginalKey");hm.put("NewKey", stuff);

remove() 似乎对 CPU 造成了很大的影响,因此我的问题是:

  1. 保留重复条目的实际内存成本是多少(不存在重叠风险)?
  2. 我只是缺少一些简洁的 swapKey() 方法吗?

最佳答案

What is the actual the memory cost to leave duplicate entries (there is no overlapping risk)?

好吧,你有一个额外的条目,并且 key 本身无法被垃圾收集。如果 key “大”,那可能是一个问题。这也意味着您永远无法获得准确的计数,您永远无法明智地迭代所有值等。对我来说,这似乎是一个坏主意。

Am I just missing some neat swapKey() method?

不存在这样的事情 - 对我来说这感觉是一个相当罕见的要求。任何这样的方法几乎都必须做你正在做的事情 - 它必须找到旧 key ,将其从数据结构中删除,并为新 key 插入一个条目。我无法轻易想象仅仅通过同时了解这两个操作就可以进行任何优化。

关于java - HashMap 键更新与双条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066668/

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