gpt4 book ai didi

java - "key"在Java HashMap中存储了两次吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:02 27 4
gpt4 key购买 nike

当在 Java 中将键值对添加到 HashMap 时,为了确定值对象的存储桶位置, HashMap 实现使用“键”对象的 hashCode 并对其应用哈希。最后将键值对存储在桶中。存储关键对象,以便在发生碰撞时可以正确检索对象。

我的问题是,“键”对象是否在 HashMap 中存储了两次,一次作为键,然后在键值对存储在链表中的桶中?

最佳答案

没有。

首先:HashMap 和(任何其他 事实上)只能存储对您传递给它的某个对象的引用 .因此,即使如果它要存储对键的两个引用,它的内存需求也是最小的。

接下来:HashMap 的实际实现 并未由 Java 标准规定,因此它可能(并且将会)因哪个而异您使用的 JVM。

最后,寻找 at the OpenJDK source code of HashMapEntry 类只有一个对 key 的引用(在恰当的名称 key 字段中),因此 key 仅存储一次。

关于java - "key"在Java HashMap中存储了两次吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122485/

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