gpt4 book ai didi

Java HashMap内部存储在不同的桶中

转载 作者:行者123 更新时间:2023-12-01 16:55:33 24 4
gpt4 key购买 nike

我有几个与 HashMap 存储相关的场景,我不知道如何完成。

情况1:由于存在保存对象的桶,所以保存时会考虑hashcode。现在假设有 5 个存储桶,我想自己控制保存哪个存储桶。有办法实现吗?比如说,通过内部机制,它将被保存到存储桶 4 中,但我想将该特定对象保存到存储桶 1 中。

案例 2:类似地,如果我发现 5 个存储桶中,有 1 个存储桶的负载比其他存储桶多得多,并且我想通过将其移动到不同的存储桶来完成负载平衡工作。如何才能做到这一点?

最佳答案

根本上没有办法在哈希表中实现负载平衡。该结构的典型属性是直接访问必须保存所请求 key 的存储桶。任何平衡方案都将涉及重新排列存储桶中的对象并破坏此属性。这就是为什么高质量的哈希码对于哈希表的正确操作至关重要。

另外请注意,您甚至无法通过操作对象的 hashCode() 方法来控制存储桶选择,因为任何两个相等对象的哈希码必须匹配,并且因为任何自重哈希表实现另外还会对从 hashCode() 检索到的值的位进行打乱,以确保更好的分散性。

关于Java HashMap内部存储在不同的桶中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33352564/

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